本节包含有关如何通过命令行界面 (CLI) 使用 Cloud Content Delivery (CCD) 的完整示例,包括以下主题:
使用 API 密钥来登录服务。如需有关查找 API 密钥的帮助,请参阅准备开始部分。
$ ucd auth login XXXXXXXXXXXX
Login successful.
使用 auth info
命令验证是否已登录。
$ ucd auth info
Current user: Joe Smith
创建您的第一个存储桶。存储桶与单个项目相关联。此示例的 Project ID 为 e1942cea-12df-4220-aa6d-f8c9c3ab7526
,但您需要使用实际的 Project ID 之一。如需有关查找 Project ID 的帮助,请参阅准备开始部分。
列出此项目的存储桶(此时应为空)。
$ ucd buckets listCos
No buckets found for project.
为此项目创建一个名为 example_bucket
的存储桶:
$ ucd buckets create e1942cea-12df-4220-aa6d-f8c9c3ab7526 example_bucket
Created bucket: example_bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf)
存储桶和条目名称区分大小写。
要查看新创建的存储桶,请再次列出此项目的存储桶:
$ ucd buckets listCos
Buckets for project (e1942cea-12df-4220-aa6d-f8c9c3ab7526):
- example_bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf)
为了使创建条目和发布版本更加容易,请将新创建的存储桶保存到本地配置中(不要在每次操作中作为 CLI 参数提供)。从上面的存储桶创建消息中复制存储桶的 GUID(不是存储桶名称)(此示例中为 aee9ee5f-fa01-46d3-a293-731d15f066cf
):
$ ucd config set bucket aee9ee5f-fa01-46d3-a293-731d15f066cf
Successfully switched to bucket aee9ee5f-fa01-46d3-a293-731d15f066cf.
Currently active project: e1942cea-12df-4220-aa6d-f8c9c3ab7526.
Currently active bucket: aee9ee5f-fa01-46d3-a293-731d15f066cf (example_bucket).
CCD 会自动在您指定的存储桶上执行与条目和发布版本有关的所有命令。
列出此新创建的存储桶中的条目(应为空):
$ ucd entries list
No Entries found for current bucket.
同步包含生成的 AssetBundle 的本地文件夹中的所有文件:
$ ucd entries syncCos ./ServerData/StandaloneOSX
Calculating...
Added Entry: catalog_2019.07.30.18.24.34.hash
Added Entry: catalog_2019.07.30.18.24.34.json
Added Entry: remotedemodata_green.bundle
Added Entry: remotedemodata_mat1.bundle
Added Entry: remotedemodata_sphere.bundle
Added Entry: remotedemodata_unitylogo.bundle
Added Entry: remotedemodata_unitylogoprefab.bundle
Added Entry: remotedemodata_scenes_scene2.bundle
Added Entry: remotedemodata_scenes_scene.bundle
Added Entry: spaceshooterdata_done_asteroid01.bundle
Added Entry: spaceshooterdata_done_asteroid02.bundle
Added Entry: spaceshooterdata_done_asteroid03.bundle
Added Entry: spaceshooterdata_done_bolt-enemy.bundle
Added Entry: spaceshooterdata_done_bolt.bundle
Added Entry: spaceshooterdata_done_enemyship.bundle
Added Entry: spaceshooterdata_done_player.bundle
Added Entry: spaceshooterdata_engines_enemy.bundle
Added Entry: spaceshooterdata_engines_player.bundle
Added Entry: spaceshooterdata_explosion_asteroid.bundle
Added Entry: spaceshooterdata_explosion_enemy.bundle
Added Entry: spaceshooterdata_explosion_player.bundle
Added Entry: spaceshooterdata_starfield.bundle
Complete!Bytes uploaded: 5346781
这会将文件作为条目添加到存储桶。您可以列出存储桶的内容,并查看有关每个条目的一些基本信息:
$ ucd entries list
22 entries for current bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf):
2019-08-21 14:27:03 167915 spaceshooterdata_starfield.bundle
2019-08-21 14:27:00 573539 spaceshooterdata_explosion_player.bundle
2019-08-21 14:26:56 412235 spaceshooterdata_explosion_enemy.bundle
2019-08-21 14:26:52 382630 spaceshooterdata_explosion_asteroid.bundle
2019-08-21 14:26:49 177018 spaceshooterdata_engines_player.bundle
2019-08-21 14:26:45 157215 spaceshooterdata_engines_enemy.bundle
2019-08-21 14:26:42 1085518 spaceshooterdata_done_player.bundle
2019-08-21 14:26:38 1070297 spaceshooterdata_done_enemyship.bundle
2019-08-21 14:26:34 27178 spaceshooterdata_done_bolt.bundle
2019-08-21 14:26:31 28362 spaceshooterdata_done_bolt-enemy.bundle
2019-08-21 14:26:28 231658 spaceshooterdata_done_asteroid03.bundle
2019-08-21 14:26:24 221450 spaceshooterdata_done_asteroid02.bundle
2019-08-21 14:26:20 227842 spaceshooterdata_done_asteroid01.bundle
2019-08-21 14:26:17 23016 remotedemodata_scenes_scene.bundle
2019-08-21 14:26:13 23064 remotedemodata_scenes_scene2.bundle
2019-08-21 14:26:10 10568 remotedemodata_unitylogoprefab.bundle
2019-08-21 14:26:07 462522 remotedemodata_unitylogo.bundle
2019-08-21 14:26:03 7864 remotedemodata_sphere.bundle
2019-08-21 14:26:00 6320 remotedemodata_mat1.bundle
2019-08-21 14:25:57 6320 remotedemodata_green.bundle
2019-08-21 14:25:53 44218 catalog_2019.07.30.18.24.34.json
2019-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.bundle
Id: 8ac46783-be01-4a47-b23e-74233fc7cc09
Last Modified: 2019-08-21 14:27:03
Content Size: 167915
Content Hash: 4a3ad5b69bd489699d1909e8868a7cb1
Content Type: application/octet-stream
Content 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
Created release (#1) in bucket (aee9ee5f-fa01-46d3-a293-731d15f066cf).
Id: 80653663-eb39-45e7-9323-e34b23df0d75
Created: 2019-08-21 14:27:30
...
因此,即使您以后更新或删除这些条目,也可以在请求内容时使用这些条目的这些确切版本。
要获取有关发布版本的更多详细信息,请使用 releases info
命令并提供刚创建的发布版本的 ID:
$ ucd releases info 80653663-eb39-45e7-9323-e34b23df0d75
Release #1:
Id: 80653663-eb39-45e7-9323-e34b23df0d75
Created: 2019-08-21 14:27:30
Content Size: 123456
Content Hash: b62343cb3582a7de1286dd3cf23c3592
Notes:
Metadata:
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 list
Releases 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
的标示添加到在创建发布版本中生成的发布版本,请输入:
$ ucd badges add my_first_badge 80653663-eb39-45e7-9323-e34b23df0d75
Added badge 'my_first_badge' to release (80653663-eb39-45e7-9323-e34b23df0d75).
要列出您在此存储桶中应用的所有标示,请输入:
$ ucd badges list
Badges 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/