Supported Storage Providers
- Local filesystem
- AWS S3
- DigitalOcean Spaces
- Google Cloud Storage
- Azure Blob Storage
AWS S3
Credentials and Region
AWS credentials and configuration are loaded as described in the AWS SDK documentation:
For example, you can set environment variables AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, or create a file ~/.aws/credentials
with AWS credentials.
If running in an AWS Lambda Function, temporary credentials (including an AWS_SESSION_TOKEN
) are automatically created. You do not need to manually configure these.
Specify the region using the AWS_REGION
environment variable or in ~/.aws/config
.
DigitalOcean Spaces
DigitalOcean Spaces is an S3-compatible object storage that this project also supports.
- Create a Space.
- Generate a new spaces access key.
- Fill in the
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
environment variables based on the access key you created. - Set
AWS_REGION
tous-east-1
- Explanation - Set
STORAGE_PATH
to the name of the Space you created. - Set
S3_ENDPOINT
to the endpoint of the Space you created. For example,https://nyc3.digitaloceanspaces.com
. - Set
STORAGE_PROVIDER
tos3
.
Google Cloud Storage
- Create a bucket (or use an existing one).
- Create a new service account.
- Grant the role
Storage Object Admin
to the service account on the bucket.# .env STORAGE_PROVIDER=google-cloud-storage STORAGE_PATH=<name-of-the-bucket>
Using static Service Account credentials
- Click “Create Key” and save the JSON file.
- Add the
project_id
,client_email
, andprivate_key
from saved JSON file to.env
(or wherever you manage your environment variables):# .env GCS_PROJECT_ID=<project_id> GCS_CLIENT_EMAIL=<client_email> GCS_PRIVATE_KEY=<private_key>
Using Application Default Credentials (ADC)
- Do not set
GCS_*
environment variables# .env GCS_PROJECT_ID= GCS_CLIENT_EMAIL= GCS_PRIVATE_KEY=
Azure Blob Storage
- Create a new Blob Storage.
- On “Security + networking” tab, copy one of
Connection string
on “Access keys” blade. - Set
ABS_CONNECTION_STRING
to the connection string.
Minio
- Create Access key
- Fill in the
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
environment variables based on the access key you created. - Create bucket
- Set
STORAGE_PATH
to the name of the bucket you created. - Set
AWS_REGION
(can leave blankS3_REGION=
for none). - Set
STORAGE_PROVIDER
tominio
. - Set
S3_ENDPOINT
to Minio url (iehttp://127.0.0.1:9000
)