Bring your own bucket to Dreep
Bring your own bucket lets a Dreep project store its originals and variants in an S3-compatible bucket you own, such as AWS S3, Cloudflare R2 or Wasabi. Dreep still handles uploads, transformations and delivery. It needs a Starter or Pro plan.
How it works
Your application code does not change. Only the place where bytes are written moves to your bucket.
- 1
Your app
SDK, REST or presigned PUT
- 2
Dreep
Validates, transforms, applies access rules
- 3
Your bucket
Originals, variants, HLS segments
- 4
Dreep CDN URL
Public, Private or Signed
Your upload code stays the same
Nothing in the code refers to the bucket.
const upload = await dreep.presignUpload({
filename: "listing-photo.jpg",
contentType: "image/jpeg",
sizeBytes: 2_400_000,
});
// The browser PUTs the file to upload.uploadUrl, then:
const asset = await dreep.confirmUpload({ id: upload.id });
// The original is now in your bucket.asset, err := client.UploadPresigned(ctx, dreep.DirectUploadOptions{
PresignOptions: dreep.PresignOptions{
Filename: "listing-photo.jpg",
ContentType: "image/jpeg",
SizeBytes: size,
},
File: f,
})
// asset.URL is a Dreep CDN URL. The bytes are in your bucket.curl -X POST "https://api.dreep.cloud/api/v1/upload/presign" \
-H "Authorization: Bearer drp_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{"filename":"listing-photo.jpg","contentType":"image/jpeg","sizeBytes":2400000}'
curl -X PUT "<uploadUrl>" -H "Content-Type: image/jpeg" --data-binary @listing-photo.jpg
curl -X POST "https://api.dreep.cloud/api/v1/upload/<id>/confirm" \
-H "Authorization: Bearer drp_live_xxxxx"Why bring your own bucket
Files you can see and keep
Every object Dreep stores for the project is in your bucket, so if you stop using Dreep the files are already where you need them.
Not metered as Dreep storage
Storage in your own bucket does not count against your Dreep storage limit.
Same access control
Public, Private and Signed folders work exactly as they do on Dreep storage.
Supported providers
Every provider is connected with the same four values, which are bucket name, S3 endpoint URL, access key ID and secret access key.
| Provider | Endpoint URL |
|---|---|
| AWS S3 | https://s3.<region>.amazonaws.com |
| Cloudflare R2 | https://<account_id>.r2.cloudflarestorage.com |
| Wasabi | https://s3.<region>.wasabisys.com |
| DigitalOcean Spaces | https://<region>.digitaloceanspaces.com |
| MinIO | Your MinIO server URL, reachable from the internet |
| Other S3-compatible | Your provider's S3 API endpoint |
Frequently asked questions
Which plans include bring your own bucket?
Starter and Pro. It is not available on Free. The plan's transformation, OCR and background removal limits still apply.
Should I connect a bucket to a project that already has files?
We recommend connecting it when you create the project. Connecting later does not move files already in Dreep storage, so the project would have files in two places.
Can I switch to a different bucket later?
No. Once a project is connected to a bucket it cannot be changed. If you need a different bucket, use a new project.
Can Dreep bring in files I already have in S3 or R2?
Yes, with the Amazon S3 and Cloudflare R2 importers, which copy chosen objects into a project folder in a background job. That is separate from bring your own bucket, which is where Dreep stores files.
Connect your bucket before your first upload
Create a project on Starter or Pro, add your bucket in Storage settings and run the connection test in a couple of minutes.