Welcome to Cloud Content Delivery (CCD)
Cloud Content Delivery (CCD) is Unity's managed cloud service that hosts and delivers content to your application’s users worldwide without having to reinstall a new version of the application. The service is fully integrated into the Unity development platform, saving you months of building and maintaining your own similar service. CCD is most valuable for content-rich, live games or applications that require content updates on a regular basis.
CCD interfaces
There are multiple ways to integrate your application content with Cloud Content Delivery (CCD):
- The command-line interface (CLI) is the recommended interface for interacting with CCD because it's the main mechanism you can use to upload content into a bucket (you can also upload content through the Unity Cloud Dashboard or the API).
- The Cloud Content Delivery Dashboard provides the same functionality as the CLI.
- The Content Delivery Management API and Content Delivery Client API allow you to manage application content through programming.
- The CCD Management SDK allows you to manage your CCD content from inside the editor. This pairs with the Addressables package, and allows you to build and release from a single location.
CCD organization
In CCD, you organize your content into buckets per environment to create a clear workflow for your project. A typical workflow example could be having separate buckets per platform (for example, an iOS bucket and an Android bucket), across multiple environments. You start with a production environment, but you can add other environments such as development and staging.
Within a given bucket, you group specific versions of each asset to create a release. As these versions change, or you add and remove entries, you designate new releases as required.
A release can also have a unique identifier associated with it, called a badge. Give this badge a meaningful name, then use it to query content, and move it between releases to add flexibility to your workflow.
Environments
You can create environments in the Unity Cloud Dashboard. A project can contain multiple environments (such as production, staging and development), but only one of them is the default one. By default, every project has a production environment.
Buckets
Using Cloud Content Delivery, you organize your content into buckets to create a clear workflow for your project. A bucket is a single context for publishing content. A typical workflow example could be having separate buckets for different platforms, with names such as ios
and android
. The buckets could be in different environments, such as the production and development environments. A bucket can be private or public. Private buckets protect read access to buckets with an access token, so only those users with that access token can retrieve content from that bucket. You can also mark a bucket as "promotion only" to restrict write access to that bucket and prevent mistakes such as uploading incorrect content to the wrong bucket. The image below shows a sample bucket as it appears in CCD, including its bucket ID, Promotion Only setting, Privacy setting, description, and the details for a release within the bucket.
You can create and edit buckets either through CCD in the Unity Cloud Dashboard or through the CLI.
Entry
An entry is a single unit of content within a bucket. Entries support labels and metadata. Creating a release captures the current state of all the entries in the bucket, similar to a versioning process.
Uploading entries to a bucket pushes a local folder’s contents to the remote bucket, which automatically adds, updates, and deletes contents in the bucket, as necessary. CCD supports entries of many file types, the most popular being .gzip, .txt and .bundle (AssetBundles).
Each entry has the following information:
- ID: The identification string of this entry.
- Path: The location of this entry.
- Content type: This field is set via the API.
- Content hash: The MD5sum hash value for this entry.
- Content version: Every time an entry changes (for example, when you upload a new version of this file, add metadata), the entry gains a new content version string. Using older version strings ensures you still have access to older, overwritten files.
Release
When you create a release, CCD takes a snapshot of all the entries (at their current versions) contained in a bucket at that specific point in time. To remove, update, or add entries, you must create a new release in order to deliver the new or changed entries. You can move releases between buckets by a process called promotion.
Creating or promoting a new release does not create copies of the entries in a bucket.
Badge
Badges enable you to select which release your application uses. You can assign a unique badge to a release, and request the badged content using that badge’s name. The image below shows how badges appear in CCD.
You can move this badge between releases, adding more flexibility to content workflows. Moving a badge removes it from the previous release that it was associated with. You can only assign a badge to a single release at a time, but you can associate multiple different badges to a release.
By default, an automatically generated badge named latest
is assigned to the latest release.