What does your app need to save its first file?
Create a Spaces bucket, a container for files, in a region available to your app. You can put a small sample file there from the dashboard. To upload from your app, connect its server to Spaces using a scoped access key and a compatible storage client.
The app should remember which account owns the file and its object name, which is how Spaces identifies it in the bucket. Spaces supports a subset of Amazon S3 features. Check the operations your client needs before relying on an existing S3 integration.
How does the right customer download a private file?
Spaces files are private by default. When someone asks for a receipt, check that they are signed in to the account that owns it. Your server can then issue a signed link that allows a download for a limited time.
Anyone who receives that link can use it until it expires, so keep it short-lived and avoid putting it in public pages or logs. A signed link through the Spaces content delivery network (CDN) still goes back to the bucket without being cached.
What should happen before and after a receipt link expires?
Draw a fictional receipt and two invented accounts. Keep your practice on paper without creating a bucket, uploading a file or issuing a real link.
- Write down the ownerGive the receipt to the first account. Draw a request from each account. The app should issue a link only for the owner.
- Track a copied linkGive the signed link a pretend expiry. A person who gets a copy before expiry can still download the receipt. After expiry, the same link should fail.
- Check the return visitDraw the owner signing in again and getting a fresh link. If you later test this in an app, first verify it points only to disposable accounts and storage with fictional files.
What does Spaces Standard charge for?
In November 2026, DigitalOcean listed Standard Storage at US$5 per month, including 250 GiB of storage and 1,024 GiB of outbound transfer shared across buckets. A GiB is a unit of file size. Billing starts when you create the first bucket.
Extra storage is US$0.02 per GiB per month. Extra outbound transfer is US$0.01 per GiB. Request-rate limits are separate from the transfer allowance. Cold Storage has different storage and retrieval charges and early-deletion conditions.
What do you keep if you move to another service?
Download the originals and keep the object names and the app’s file-to-account map. The dashboard can download individual files. Compatible tools or the API can download files for a larger move.
Set up access rules and credentials in the new storage. Check that the right account can open a copied file and a different account cannot obtain a download link before updating the app’s references.