SETUP GUIDES · FILE STORAGE
Wasabi bucket
Store your app’s files in Wasabi.
Wasabi is S3-compatible storage with simple pricing. You create a bucket and a separate user whose policy only allows your project’s folder.
Words you’ll see
- Bucket
- A storage container for files at a storage provider, like a top-level folder in the cloud. Your app’s uploads go into it.
- Policy
- A short list of what a user or key is allowed to do, written as JSON. You paste the one from the guide; it allows only what Claspine needs.
- Access key ID and secret access key
- A pair of values that works like a username and password for programs. The ID can be shown; the secret is shown once when you create it.
- Endpoint
- The web address Claspine uses to reach your storage provider, such as https://s3.us-east-1.amazonaws.com.
- CORS
- A browser safety setting on the bucket that says which websites may upload or download directly. Without it, browsers block uploads from your app.
Steps
- In the Wasabi console, create a bucket and note its region endpoint (for example
s3.us-east-1.wasabisys.com). - Under Users, create a user with programmatic (API) access only.
- Attach a policy that allows
s3:PutObject,s3:GetObjectands3:DeleteObjectonarn:aws:s3:::<bucket>/projects/<project-id>/*. It is the same JSON as in the Amazon S3 guide. - Create an access key for that user and copy both values.
- Set a CORS rule on the bucket for your app’s web address.
- Open the Claspine console, choose your project and go to File Storage.
- Pick this provider in the list, then fill in the fields as shown in “What goes where in Claspine” below.
- Click Save & test. Claspine writes one tiny test file into your bucket, reads it back and deletes it. A green result means everything is connected.
What goes where in Claspine
| Console field | Value |
|---|---|
| ENDPOINT | https://s3.<region>.wasabisys.com |
| ACCESS KEY ID / SECRET | From step 4. |
Keep it safe
- Do not use your root account’s keys.
Claspine stores the values encrypted, never shows them again in full, and never sends them to your app or SDK.