# Publish your first cloud package Connect one of five cloud storage providers, publish a test clip with Packager for Media, and verify encrypted playback. Hands-on tutorial Take one short test clip from your Windows Packager to encrypted playback on your own cloud storage. [Choose your provider ↓](#choose-a-provider) From cloud connection to first playback Follow the same publishing sequence with any supported storage connector. - 01**Connect** Register and verify the storage destination in your test environment. - 02**Publicar** Upload the encrypted package and wait for its Published status. - 03**Reproduzir** Verify delivery and use Test Playback for the published Content ID. ## 1. Choose a provider and prepare the destination[#](#choose-a-provider) Use a dedicated delivery bucket or container and a short test video you can publish. Set up an HTTPS media delivery URL that maps to the encrypted output. Keep source media and private files in separate storage. | Provider | What to prepare | | --- | --- | | Amazon S3 | Bucket, region and scoped IAM access keys. Use CloudFront with Origin Access Control to deliver from a private bucket. See the [Amazon S3 and CloudFront walkthrough](https://docs.drm-x.com/pt/storage/amazon-s3). | | Azure Blob Storage | Dedicated storage account, container and storage account key. Use an HTTPS CDN or an intentionally public encrypted-blob delivery path. Include the container in a direct Blob URL. | | Google Cloud Storage | Bucket and service-account HMAC credentials for the XML API. Configure an HTTPS delivery domain or CDN for the bucket. | | Alibaba Cloud OSS | Bucket, region and scoped RAM credentials. Confirm S3-compatible authentication and configure an HTTPS delivery domain or CDN. | | Tencent Cloud COS | Full bucket name, region and scoped CAM credentials. See the [Tencent Cloud COS walkthrough](https://docs.drm-x.com/pt/storage/tencent-cos). | Use the provider-specific permissions and upload headers in [Connect cloud storage](https://docs.drm-x.com/pt/storage/cloud-storage). Configure upload CORS for the Console origin and playback CORS for GET, HEAD and range requests on the final delivery host. ## 2. Connect the destination in DRM-X Console[#](#connect-in-console) - Open [Cloud Storage](https://6.drm-x.com/console/cloud-storage) in your chosen environment and select **Connect storage**. - Select the provider and enter its connection details. Keep cloud credentials in the Console connection fields. - Match the object path and delivery prefix. For example, use base path `protected` with `https://media.example.com/protected`. An output object named `demo/manifest.mpd` would be delivered at `https://media.example.com/protected/demo/manifest.mpd`. - Select **Save and verify**, then make this the default destination in the test environment. The connection check verifies listing. A package upload and a real playback test verify the rest of the delivery path. ## 3. Publish one encrypted package[#](#publish-with-packager) - Open [Packager for Media](https://docs.drm-x.com/pt/packaging/desktop#video-tutorial), select **Sign in / Renew**, and choose the environment you just configured. - Add your test clip. Choose the encoding and DRM output appropriate for your test player and set a unique Content ID, such as `cloud-demo-clip`. - Enable upload of encrypted output to cloud storage. Start the batch and wait for verification and publication. - In [Package History](https://6.drm-x.com/console/package-history), find the Content ID and confirm its status is **Published**. ## 4. Verify delivery and protected playback[#](#verify-playback) - Check the manifest and a media segment on the configured HTTPS delivery host. Confirm the expected content type, size and CORS headers. - Send a range request for the first 16 bytes of a media segment. Confirm HTTP 206 and a matching `Content-Range`. - Choose **Test Playback** in Package History. Start playback and seek in a browser or device that supports the selected DRM. ``` curl -i -H "Range: bytes=0-15" https://media.example.com/protected/demo/segment-1.m4s ``` Replace the example URL with your encrypted media segment URL. If publishing succeeds but playback fails, check the delivery path and CORS first, then follow the [protected playback troubleshooting guide](https://docs.drm-x.com/pt/troubleshooting/playback).