Uploading Products

Learn best practices for organizing, uploading, and managing your digital products on Continuata.

Preparing Your Files

Proper file organization before upload ensures your customers have the best experience.

Recommended Folder Structure

epic-drum-kit-v1/
├── README.txt
├── samples/
│ ├── kicks/
│ │ ├── kick_01.wav
│ │ └── kick_02.wav
│ └── snares/
│ ├── snare_01.wav
│ └── snare_02.wav
├── loops/
│ └── full_beat.wav
└── license.txt

✓ Best Practices

  • • Logical folder hierarchy
  • • Descriptive file names
  • • Include README files
  • • Add license information
  • • Consistent naming conventions

✗ Avoid

  • • Special characters in names
  • • Very deep folder nesting
  • • Empty folders
  • • Hidden system files
  • • Temporary files (.tmp, .cache)

Upload Methods

Dashboard Upload (Recommended)

  1. Go to your Continuata dashboard
  2. Click "Create Product" or select an existing product
  3. Click "Upload New Version"
  4. Select your product folder
  5. Enter version details and upload

API Upload

For automated workflows, use the upload API:

// 1. Initiate multipart upload
POST /api/products/{productId}/versions
{
  "version": "1.0.0",
  "files": [
    {
      "path": "samples/kick_01.wav",
      "size": 8388608,
      "sha256": "calculated_hash_here"
    }
  ]
}

// 2. Upload file chunks
PUT /api/blob/{orgId}/{productHash}/{fileHash}
Content-Type: application/octet-stream
[binary file data]

// 3. Complete upload
PATCH /api/products/{productId}/versions/{versionId}/complete

Version Management

Each product can have multiple versions with different activation states:

Version States

Processing

Files being uploaded/verified

Ready

Available for activation

Active

Currently served to users

Version Activation

Only one version per product can be active at a time. Activating a new version immediately makes it available for new download tokens.

File Processing

Understanding what happens to your files during upload:

1

Hash Calculation

SHA-256 hash computed for each file to enable content addressing and deduplication.

2

Chunking

Large files split into 4MB chunks for parallel downloads and resume support.

3

Storage

Files stored in Cloudflare R2 using content-addressed keys for global availability.

4

Manifest Generation

Signed manifest created with all file metadata and download URLs.

Storage Optimization

Automatic Deduplication

Files with identical content are stored only once, regardless of filename or location:

kick_01.wav (Product A) → hash: abc123...
kick.wav (Product B) → hash: abc123...
✓ Both files reference the same stored data

Storage Efficiency Tips

  • Use consistent sample rates and bit depths across your library
  • Normalize audio levels before uploading to maximize deduplication
  • Keep common files (READMEs, licenses) identical across products
  • Use lossless formats for master files when possible

Troubleshooting Uploads

Upload fails or gets stuck

• Check your internet connection stability

• Ensure you haven't exceeded storage limits

• Try uploading smaller batches of files

• Clear browser cache and try again

Files missing after upload

• Check that version status shows "Ready" not "Processing"

• Verify files weren't filtered out (system files, temp files)

• Ensure files don't exceed individual size limits

• Check upload logs in the dashboard

Version won't activate

• Ensure all files uploaded successfully

• Check that manifest generation completed

• Verify product is in "published" status

• Review any error messages in upload logs

Next Steps

Once your product is uploaded and activated, learn how tocreate download tokens or set up automated delivery.