文档

支持

Cloud Content Delivery

Open Unity Dashboard

Cloud Content Delivery

通过 CLI 使用 CCD

Follow this workflow to use CCD through the UGS command line interface, such as to authenticate, create buckets, manage entries, and handle releases.
阅读时间8 分钟最后更新于 1 个月前

本节举例说明如何通过命令行界面 (CLI) 使用 Cloud Content Delivery (CCD),包括以下主题:

身份验证

使用您的 API 密钥登录相应服务。如果您在查找 API 密钥时需要帮助,请参阅开始使用部分。 身份验证
$ ucd auth login XXXXXXXXXXXXLogin successful.
使用
auth info
命令验证您是否已登录。
登录验证
$ ucd auth infoCurrent user: Joe Smith

创建存储桶

创建您的第一个存储桶。存储桶与单个项目相关联。此示例的 Project ID 为
e1942cea-12df-4220-aa6d-f8c9c3ab7526
,但您需要使用实际的 Project ID 之一。如果您在查找 Project ID 时需要帮助,请参阅开始使用部分。
同样,此示例的环境 ID 为
b5179fae-d9be-4cd4-8afb-7bfdd691eb06
,但您需要使用实际的环境 ID 之一。要查找项目的环境以及相应 ID 的列表,请访问 Dashboard(后台)并转到 Projects(项目)> Project Settings(项目设置)> Environments(环境)
列出此项目的存储桶(此时应为空)。 列出存储桶
$ ucd buckets list e1942cea-12df-4220-aa6d-f8c9c3ab7526 --environment=b5179fae-d9be-4cd4-8afb-7bfdd691eb06 No buckets found for given project and environment.
为此项目创建一个名为
example_bucket
的存储桶:
创建存储桶
$ ucd buckets create e1942cea-12df-4220-aa6d-f8c9c3ab7526 example_bucket --environment=b5179fae-d9be-4cd4-8afb-7bfdd691eb06Created bucket: example_bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf)
存储桶和条目名称区分大小写。 要查看新创建的存储桶,请再次列出此项目的存储桶: 列出存储桶
$ ucd buckets list e1942cea-12df-4220-aa6d-f8c9c3ab7526 --environment=b5179fae-d9be-4cd4-8afb-7bfdd691eb06Buckets for project (e1942cea-12df-4220-aa6d-f8c9c3ab7526) in environment (b5179fae-d9be-4cd4-8afb-7bfdd691eb06):- example_bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf)
为了更轻松地创建条目和发布版本,请将环境和新创建的存储桶保存到本地配置中(不要在每个操作中将其作为参数提供给 CLI)。 复制您的环境 ID(在此示例中为
b5179fae-d9be-4cd4-8afb-7bfdd691eb06
):
$ ucd config set environment b5179fae-d9be-4cd4-8afb-7bfdd691eb06 --project=e1942cea-12df-4220-aa6d-f8c9c3ab7526Successfully switched to environment b5179fae-d9be-4cd4-8afb-7bfdd691eb06.Currently active project: e1942cea-12df-4220-aa6d-f8c9c3ab7526.
从以上创建存储桶的消息中复制存储桶的 ID(不是存储桶名称,在此示例中为
aee9ee5f-fa01-46d3-a293-731d15f066cf
):
设置配置
$ ucd config set bucket aee9ee5f-fa01-46d3-a293-731d15f066cfSuccessfully switched to bucket aee9ee5f-fa01-46d3-a293-731d15f066cf.Currently active project: e1942cea-12df-4220-aa6d-f8c9c3ab7526.Currently active environment: b5179fae-d9be-4cd4-8afb-7bfdd691eb06.Currently active bucket: aee9ee5f-fa01-46d3-a293-731d15f066cf (example_bucket).
CCD 会自动执行与您指定的存储桶和环境中的条目和发布版本相关的任何命令。

在存储桶中创建条目

列出这个新创建的存储桶中的条目(应为空): 列出条目
$ ucd entries listNo Entries found for current bucket.
同步本地文件夹中的所有文件。在此示例中,本地文件夹包含的内容是生成的 AssetBundles 同步文件
$ ucd entries sync ./ServerData/StandaloneOSXCalculating...Added Entry: catalog_2019.07.30.18.24.34.hashAdded Entry: catalog_2019.07.30.18.24.34.jsonAdded Entry: remotedemodata_green.bundleAdded Entry: remotedemodata_mat1.bundleAdded Entry: remotedemodata_sphere.bundleAdded Entry: remotedemodata_unitylogo.bundleAdded Entry: remotedemodata_unitylogoprefab.bundleAdded Entry: remotedemodata_scenes_scene2.bundleAdded Entry: remotedemodata_scenes_scene.bundleAdded Entry: spaceshooterdata_done_asteroid01.bundleAdded Entry: spaceshooterdata_done_asteroid02.bundleAdded Entry: spaceshooterdata_done_asteroid03.bundleAdded Entry: spaceshooterdata_done_bolt-enemy.bundleAdded Entry: spaceshooterdata_done_bolt.bundleAdded Entry: spaceshooterdata_done_enemyship.bundleAdded Entry: spaceshooterdata_done_player.bundleAdded Entry: spaceshooterdata_engines_enemy.bundleAdded Entry: spaceshooterdata_engines_player.bundleAdded Entry: spaceshooterdata_explosion_asteroid.bundleAdded Entry: spaceshooterdata_explosion_enemy.bundleAdded Entry: spaceshooterdata_explosion_player.bundleAdded Entry: spaceshooterdata_starfield.bundleComplete! Bytes uploaded: 5346781
此命令会将文件作为条目添加到存储桶中。您可以列出存储桶的内容,并查看有关每个条目的一些基本信息: 列出存储桶的内容
$ ucd entries list22 entries for current bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf):2019-08-21 14:27:03 167915 spaceshooterdata_starfield.bundle2019-08-21 14:27:00 573539 spaceshooterdata_explosion_player.bundle2019-08-21 14:26:56 412235 spaceshooterdata_explosion_enemy.bundle2019-08-21 14:26:52 382630 spaceshooterdata_explosion_asteroid.bundle2019-08-21 14:26:49 177018 spaceshooterdata_engines_player.bundle2019-08-21 14:26:45 157215 spaceshooterdata_engines_enemy.bundle2019-08-21 14:26:42 1085518 spaceshooterdata_done_player.bundle2019-08-21 14:26:38 1070297 spaceshooterdata_done_enemyship.bundle2019-08-21 14:26:34 27178 spaceshooterdata_done_bolt.bundle2019-08-21 14:26:31 28362 spaceshooterdata_done_bolt-enemy.bundle2019-08-21 14:26:28 231658 spaceshooterdata_done_asteroid03.bundle2019-08-21 14:26:24 221450 spaceshooterdata_done_asteroid02.bundle2019-08-21 14:26:20 227842 spaceshooterdata_done_asteroid01.bundle2019-08-21 14:26:17 23016 remotedemodata_scenes_scene.bundle2019-08-21 14:26:13 23064 remotedemodata_scenes_scene2.bundle2019-08-21 14:26:10 10568 remotedemodata_unitylogoprefab.bundle2019-08-21 14:26:07 462522 remotedemodata_unitylogo.bundle2019-08-21 14:26:03 7864 remotedemodata_sphere.bundle2019-08-21 14:26:00 6320 remotedemodata_mat1.bundle2019-08-21 14:25:57 6320 remotedemodata_green.bundle2019-08-21 14:25:53 44218 catalog_2019.07.30.18.24.34.json2019-08-21 14:25:50 32 catalog_2019.07.30.18.24.34.hash
要获取有关特定条目的更多详细信息,请使用带有条目路径的
entries info
命令:
获取条目信息
$ ucd entries info spaceshooterdata_starfield.bundle`Entry Info:Path: spaceshooterdata_starfield.bundleId: 8ac46783-be01-4a47-b23e-74233fc7cc09Last Modified: 2019-08-21 14:27:03Content Size: 167915Content Hash: 4a3ad5b69bd489699d1909e8868a7cb1Content Type: application/octet-streamContent Link: …Labels:Metadata:Current Version: aa0304db-fd9f-4772-9549-dfeb44cc6d6f
您的游戏客户端现在可以使用与条目关联的路径来请求存储桶中特定文件的内容。向位于
<project_guid>.client-api.unity3dusercontent.com
且特定于项目的子域发出所有游戏客户端请求。所有 URL 的请求路径都以
/client_api/v1/
开头。所有这些客户端请求都不需要身份验证。
要按路径获取条目(例如
spaceshooterdata_starfield.bundle
)的内容,请输入:
https://<project_guid>.client-api.unity3dusercontent.com/client_api/v1/buckets/aee9ee5f-fa01-46d3-a293-731d15f066cf/entry_by_path/content/?path=spaceshooterdata_starfield.bundle
或者,要按条目 ID 获取条目的内容,请输入:
https://<project_guid>.client-api.unity3dusercontent.com/client_api/v1/buckets/aee9ee5f-fa01-46d3-a293-731d15f066cf/entries/8ac46783-be01-4a47-b23e-74233fc7cc09/content/

创建发布版本

根据条目的当前状态创建发布版本: 创建发布版本
$ ucd releases create -n "This is a sample note"Created release (#1) in bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf).Id: 80653663-eb39-45e7-9323-e34b23df0d75Created: 2019-08-21 14:27:30...
这种情况下可以在请求内容时使用这些条目的确切版本,即使您稍后更新或移除这些条目也不影响。 要获取有关发布版本的更多详细信息,请使用
releases info
命令并提供您刚创建的发布版本的 ID:
获取发布版本信息
$ ucd releases info 80653663-eb39-45e7-9323-e34b23df0d75Release #1:Id: 80653663-eb39-45e7-9323-e34b23df0d75Created: 2019-08-21 14:27:30Content Size: 123456Content Hash: b62343cb3582a7de1286dd3cf23c3592Notes: This is a sample noteMetadata:Entries:- remotedemodata_scenes_scene2.bundle (version: d7c69bc0-5c0b-4625-8a7d-94a4972aa236)- remotedemodata_unitylogo.bundle (version: 97d3659f-0b74-403a-be67-02641ce2dc91)- spaceshooterdata_done_enemyship.bundle (version: edcedc81-80b6-4006-9732-0444898fcffa)- remotedemodata_unitylogoprefab.bundle (version: 4edfa2be-7fae-44c9-bb45-f601cc1130db)- spaceshooterdata_done_bolt-enemy.bundle (version: ef36bfa8-8b24-4b81-a329-b3fad0a0939b)...
要获取您在此存储桶中生成的所有发布版本的列表,请输入: 列出存储桶中的发布版本
$ ucd releases listReleases for current bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf):2019-08-21 14:27:30 #1 (80653663-eb39-45e7-9323-e34b23df0d75)
现在,您可以直接引用此发布版本中包含的内容。这样就可以确保您获得 CCD 用于生成此发布版本的确切内容集,即使您稍后更改存储桶中的条目也不影响。 要按路径获取条目(例如
spaceshooterdata_starfield.bundle
)的内容,请输入:
https://<project_guid>.client-api.unity3dusercontent.com/client_api/v1/buckets/aee9ee5f-fa01-46d3-a293-731d15f066cf/releases/80653663-eb39-45e7-9323-e34b23df0d75/entry_by_path/content/?path=spaceshooterdata_starfield.bundle
或者,要按条目 ID 获取条目的内容,请输入:
https://<project_guid>.client-api.unity3dusercontent.com/client_api/v1/buckets/aee9ee5f-fa01-46d3-a293-731d15f066cf/releases/80653663-eb39-45e7-9323-e34b23df0d75/entries/8ac46783-be01-4a47-b23e-74233fc7cc09/content/
您还可以请求与存储桶中最新发布版本对应的内容,因此客户端无需在每次 CCD 生成新的发布版本时进行更改。为此,请更新请求以使用
release_by_badge
途径并指定标示名称
latest
(请参阅管理标示)。例如:
https://<project_guid>.client-api.unity3dusercontent.com/client_api/v1/buckets/aee9ee5f-fa01-46d3-a293-731d15f066cf/release_by_badge/latest/entry_by_path/content/?path=spaceshooterdata_starfield.bundle

管理标示

生成一个发布版本后,您可以应用一个标示来唯一标识这个发布版本。一个标示只能指向存储桶中的一个发布版本,但您可以在不同发布版本之间移动标示。在运行时,您可以使用标示名称而不是特定的发布版本 ID 来查询内容,从而在工作流程中获得更大的灵活性。 例如,您可以将名为
qa_latest
的标示应用于最新发布版本以供 QA 团队使用,并在流程(手动或自动)中将该标示移动到每个新的发布版本。
要将名为
my_first_badge
的标示添加到您在创建发布版本中生成的发布版本,请使用
badge_name
release_ID
作为参数输入:
添加标示
$ ucd badges add my_first_badge 80653663-eb39-45e7-9323-e34b23df0d75Added badge 'my_first_badge' to release (80653663-eb39-45e7-9323-e34b23df0d75).
列出您在此存储桶中应用的所有标示: 列出存储桶中的标示
$ ucd badges listBadges for current bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf):2020-01-07 12:55:41 my_first_badge (80653663-eb39-45e7-9323-e34b23df0d75)
与标示所引用的发布版本关联的内容可供下载。您可以采用与直接按条目 ID 下载内容类似的方式执行此下载操作。 要按路径获取条目(例如
spaceshooterdata_starfield.bundle
)的内容,请输入:
https://<project_guid>.client-api.unity3dusercontent.com/client_api/v1/buckets/aee9ee5f-fa01-46d3-a293-731d15f066cf/release_by_badge/my_first_badge/entry_by_path/content/?path=spaceshooterdata_starfield.bundle
或者,要按条目 ID 获取条目的内容,请输入:
https://<project_guid>.client-api.unity3dusercontent.com/client_api/v1/buckets/aee9ee5f-fa01-46d3-a293-731d15f066cf/release_by_badge/my_first_badge/entries/8ac46783-be01-4a47-b23e-74233fc7cc09/content/