Unity CCD VS Amazon S3 or Firebase Cloud Storage for my use case

Hey there! I need to build an app where users log in and download exercises that contain 3D models alongside text and images/videos.The files would be uploaded by teachers who don’t have any programming knowledge

Looking for a good CDN I’ve just discovered the UGS Cloud Content Delivery and I think it could be a good alternative to Firebase or Amazon S3 as it seems more simple to use has a bigger bandwith in the free tier. However I need to use the Client API and I don’t see how to list files with GET requests.

Which CDN do you think would be better for this use case? Which ones have you tried? Do you have any useful links to implement them in Unity?

Hi Aupuma,

Thanks for posting on the forums and sharing your use case. You can try the following with CCD

First, you need to add a permission to your bucket using the management endpoint.

Example:
curl --location --request POST
'[https://content-api.cloud.unity3d.com/api/v1/environments/{{environmentId}}/buckets/{{bucketId}}/permissions](https://content-api.cloud.unity3d.com/api/v1/environments/%7B%7BenvironmentId%7D%7D/buckets/%7B%7BbucketId%7D%7D/permissions)' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{Token}}' \
--data-raw '{
"role": "client",
"action": "list-releases",
"permission": "allow"
}'

This will then allow a new endpoint for the Client API.

Gets all entries for a single release:
/client_api/v1/environments/{{environmentName}}/buckets/{{bucketId}}/releases/{{releaseId}}/entries/

Then you can iterate over the entries and extract the folders using the path.

Hope this gets you started and helps you out with Unity Cloud Content Delivery.

@SebT_Unity , I am building a small desktop app (with a backend server) which will be used to distribute Unity builds that will use CCD for dynamic content delivery. Should CCD be used to source the initial build ? The general use case that Unity highlights is one in which the initial download is via an app store, and the updates are directly to the Unity client. Can both the initial download and the future updates be via CCD itself ? Want to get rid of AWS S3 completely.

Hi @Blitzkreig95

Thanks for posting on the forums.

Yes you can use CCD for the initial download and to distribute content at later dates.
Take a look at this short tutorial that would be great to get you started with the initial download setup.

All the best,
Seb

Thanks. I also have a doubt regarding the streaming of the addressable assets from the remote. If I am not wrong, the addressable assets that have remote origin are not stored locally after the "Release". What is the appropriate methodology to have them stored on the local device and use this local group, next time the player visits the concerned location.

For eg. in LoadyDungeon ,

MainMenu, LoadingScene are LOCAL
Level00, Level01 and Level02 are REMOTE

How do I ensure that if the player plays Level00 yesterday, they are able to locally access it today ?

P.S. This may be important for use for saving cost. If there is no viable path, then we would rather have a large build that does not use Addressables, as the player is expected to revisit the levels over and over again.

I believe that there's an option to cache it, so the player only downloads it once and the content is "forever" stored locally.