Title Storage Sample

标题存储示例概述

阅读时间5分钟
EOS SDK标题存储示例

开始之前

标题存储示例 使用 Epic账号服务 对本地用户进行身份验证,以便用于演示目的。这需要将用于初始化 Epic在线服务 (EOS)SDK的客户端凭证分配给Epic账号服务使用的 应用

此示例中演示的SDK功能可与所有受支持的身份提供商配合使用,以进行用户身份验证。

由于标题存储接口无法上传或标记文件,你需要通过开发人员门户进行操作。请注意,你在开发者门户中上传文件时使用的 加密密钥 必须与示例中的 SampleConstants.h 中的加密密钥匹配。否则,下载后的解密阶段会产生错误的结果。

探索示例

标题存储示例是一个简单的文件资源管理器,主要用于与你的产品相关联的云存储。你可以用你的账号来登录或注销。登录后,你可以浏览、下载和查看与产品关联的文件。如果你已通过开发人员门户标记了文件,则可以根据这些标记执行查询。

标题存储面板

如要开始使用标题存储示例,请找到用户界面右侧的 标题存储(Title Storage) 面板,输入你的主机地址和用户凭证(取自开发人员身份验证工具),然后点击 登录(Log In) 按钮进行登录。

登录界面

标题存储示例的登录界面。点击查看大图。

登录后,你将可以查询、下载和查看与你的产品关联的文件(如存在)。登录(Log In) 按钮将变为 注销(Log Out),用于与你的文件交互的用户界面将变得可用。

标题存储主面板

标题存储页面的主面板。点击查看大图。

标题存储示例具有以下功能:

  • 下载:下载单个文件。在 下载(Download) 按钮旁边的字段中输入要下载的文件名,然后点击按钮。后端服务将根据其文件覆盖设置(如有)确定要发送哪个文件,示例将下载该文件并将其放入文件列表中。下载完成后,你将能够点击列表中的文件并查看其内容。
  • 查询:找到所有至少有一个标签的文件,用它们生成一张文件列表。在 添加标签(Add Tag) 按钮旁边的文本字段中输入要包含在查询中的每个标签,一次输入一个,然后点击按钮将其添加到标签列表中。你可以随时点击 清空列表(Clear List) 按钮来清空标签列表。等到列表包含了所有你要在查询中使用的标记后,点击 查询列表(Query List) 按钮,系统会找到所有至少用包含其中一个你列出的标记的文件,并填充在窗口底部的文件列表中。你可以从列表中下载文件并查看其内容,办法是选中该文件,然后点击 下载(Download) 按钮。

控制台面板

程序运行后输出的日志,包括控制台命令的结果,都会出现在 控制台(Console) 面板顶部的文本区域,该面板位于用户界面的左下角。除了点击标题存储面板中的按钮,你还可以在控制台面板底部输入控制台命令。

标题存储示例的控制台面板

标题存储示例的控制台面板。点击查看大图。

支持以下命令:

命令参数用途
GETFILEFILE_NAME根据名称从云下载指定文件
TESTFILEFILE_NAME, FILE_PATH从标题存储接口检索 FILE_NAME,并将其内容与位于 FILE_PATH 位置的未加密本地文件进行比较
HELP(无)将有关上述所有命令的帮助信息打印到控制台输出。

你可以在 Game.cpp 中的 Game::CreateConsoleCommands 函数中添加自己的控制台命令。

文件面板

文件(File) 面板显示当前选中文件的内容(在标题存储面板中)。

进度条窗口

标题存储示例所执行的文件传输操作是异步进行的。在执行这些操作时,示例会显示一个 进度条 窗口、一个带有进度条的弹出窗口,和一个 取消 按钮。用户可以通过点击 取消(Cancel) 来中断传输。尽管标题存储接口一次可以支持多个传输操作,但该示例一次只运行了一个文件传输操作。

文件传输状态

传输中的文件。点击查看大图。

探索源代码

与数据文件交互的大部分代码都位于 Samples/TitleStorage/Source/TitleStorage.cpp 中。以下函数用于与标题存储接口直接交互:

函数名称用途
QueryList根据当前选择的标记来获取文件条目列表。
StartFileDataDownload获取特定文件的内容。
CancelCurrentTransfer取消当前文件传输(如有)。

这些函数不会直接使用标题存储接口,但会与本地系统上的相关数据交互。当你需要构建自己的系统来管理文件相关的本地缓存信息时,它们可以提供基本帮助:

函数名用途
GetFileList返回本地文件列表。
SetFileList设置本地文件列表。
GetLocalData返回指定文件的本地缓存数据。当本地没有可用的数据时,NoData 标志设置为 true
SetLocalData设置指定文件的本地数据。
EraseLocalData擦除指定文件的本地数据(如有)。
AddTag将新标签添加到列表查询要使用的当前选定标签集中。
ClearTags删除当前选择的所有标签
GetCurrentTags获取选中的标签