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 and open your product
  2. Click the Versions tab
  3. Click Select Folder to Upload and choose your product folder
  4. Wait for hashing, packing, uploading, and verification to complete. You can pause and resume at any point — speed and ETA are shown throughout.
  5. Click Set Active on the version to make it available for download

API Upload

For automated workflows, use the upload API:

// 1. Check which packs already exist (skip re-uploading unchanged content)
POST /api/pack-check
{
  "vendorId": "audio-company",
  "packHashes": ["sha256_pack1", "sha256_pack2", ...]
}
// Response: { "existing": ["sha256_pack1"] }

// 2. Upload each new pack (raw bytes, ~8MB each)
PUT /api/blob/{vendorId}/packs/pack-{sha256}
Content-Type: application/octet-stream
[raw pack bytes]

// 3. Upload the manifest (describes all files, packs, and segments)
POST /api/manifest
{
  "vendorId": "audio-company",
  "productId": "epic-drums-v1",
  "productHash": "abc123...",
  "manifest": { "v": 3, "packs": [...], "files": [...] }
}

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

Setting a Version Active

Only one version per product can be active at a time. Clicking Set Active on a 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

Packing

Files are grouped into ~8MB packs in the browser. No file is ever split across two packs, preventing write corruption. Each pack is hashed with SHA-256 to enable deduplication across versions.

3

Storage

Packs are stored at vendorId/packs/pack-{sha256}. Before uploading, the server is queried for which packs already exist — only new packs are transferred.

4

Manifest Generation

Signed manifest created with all file metadata and download URLs.

Storage Optimization

Automatic Deduplication

Packs are deduplicated across versions. Before uploading, Continuata checks which packs already exist in storage — only packs containing changed or new files need to be transferred:

Version 1.0 upload → 150 packs stored
Version 1.1 upload → 12 files changed → 3 new packs uploaded
✓ 147 unchanged packs are skipped entirely

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

Pause & Resume

Uploads can be paused and resumed at any point during the uploading stage. Use the Pause button that appears once the upload begins. Current speed (MB/s) and estimated time remaining are shown throughout.

Because packs are content-addressed, a resumed upload picks up exactly where it left off — any packs already confirmed in storage are not re-transferred.

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.