Skip to content

S3-compatible providers

Sliick Files works with any S3-compatible storage, not just Amazon S3. Read this if you are using Backblaze B2, Wasabi, Cloudflare R2, or a self-hosted MinIO.

The Salesforce side of setup is identical, and so is the Sliick Settings form. Only the provider-side flow for creating the credential differs.

Wasabi has a full worked guide. If that is your provider, go straight to Wasabi, which covers the region-specific endpoint, the lifecycle rules, and Wasabi’s minimum-storage-duration billing.

ProviderCredential typeWhere to create
Backblaze B2Application KeyAccount → App Keys → Add a New Key
WasabiAccess KeyAccess Keys → Create New Access Key
Cloudflare R2API Token (S3-compatible)R2 → Manage R2 API Tokens → Create Token
MinIO/self-hostedService Account / User KeysMinIO Console → Identity → Service Acct

Grant the same seven actions scoped to your bucket, exactly as in Create the access key:

  • Bucket level: ListBucket, GetBucketLocation, ListBucketVersions
  • Object level: GetObject, PutObject, DeleteObject, DeleteObjectVersion

The two version actions are what Restore from the Deleted Files tab needs. Omit them and uploads still work while Restore silently cannot recover anything.

CORS configuration also applies. Every S3-compatible provider exposes CORS settings on the bucket, so use the same JSON as Configure CORS on the bucket.

In Sliick Settings the provider choice uses the same form for Amazon S3, S3-Compatible, B2, Wasabi and R2. The Endpoint field is optional and left blank for standard AWS S3, but for every other provider it is required, and it is usually region-specific. Read the exact value from your provider’s console rather than assembling it from memory. See Connect in Sliick Settings.

Check whether your endpoint needs a trusted site

Section titled “Check whether your endpoint needs a trusted site”

Salesforce blocks browser requests to hosts its Content Security Policy does not list, and Sliick uploads go straight from the browser to your storage. The package ships trusted sites for the common hosts, so nothing is needed for AWS, Wasabi, Backblaze B2, Cloudflare R2, Google Cloud Storage, Azure or SharePoint.

A self-hosted or custom endpoint, such as MinIO or Ceph, is not covered. Add it once:

  1. Setup → Security → CSP Trusted Sites → New Trusted Site.

  2. Fill in:

    FieldValue
    Trusted Site NameLetters, digits and _ only, for example MinIO_Storage
    Trusted Site URLYour exact host, for example https://minio.your-domain.com
    ActiveTicked
    ContextAll
    Allow site for connect-srcTicked, for the upload and download requests
    Allow site for img-srcTicked, for thumbnails and the photo editor

    Leave the other directives unchecked.

  3. Save, then hard-refresh the record page before retesting.

Skipping this looks exactly like a CORS problem. The browser console tells them apart. Refused to connect ... violates ... connect-src is the trusted site. No 'Access-Control-Allow-Origin' header is bucket CORS.

The S3 sync integration is wired through an AWS SNS topic. S3-compatible providers have no equivalent, so there is nothing to point the notification at. Changes made directly in the bucket are not reflected back into Salesforce. Everything done through Sliick works normally. See Two-way sync.