AWS S3
AWS S3 is used to store arbitrary unstructured data like images, files, backups, etc. Aidbox offers integration with S3 to simplify upload and retrieval of data. All examples from this tutorial are executable in Aidbox REST console.
Setup AwsAccount
Create an instance of AwsAccount that contains access credentials and region settings.
PUT /AwsAccount
id: my-account
access-key-id: AKIAIOSFODNN7EXAMPLE
secret-access-key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
region: us-east-1
Get signed URL to upload the file
Provide AwsAccount id as well as the bucket name and get back the signed URL that you can use to upload the data. By default, the link is valid for 24 hours.
POST /aws/storage/my-account/aidboxtestbucket
filename: example.txt
# status: 200
# body:
# url: <signed-url>
You should use PUT request method with signed URL and provide content data in the request body.
curl -X PUT '<signed-url>' -d 'content'
Get a signed URL to retrieve the file
GET /aws/storage/my-account/aidboxtestbucket/example.txt
# status: 200
# body:
# url: <signed-url>
You should use GET request method with signed URL:
curl -X GET '<signed-url>' -d 'content'
Get a signed URL to delete the file
It is also possible to delete the file:
DELETE /aws/storage/my-account/aidboxtestbucket/example.txt
# status: 200
# body:
# url: <signed-url>
Configuration options
path | type | description |
---|---|---|
AwsAccount.access-key-id | string | The access key ID used for authentication with AWS S3 or an S3-compatible service |
AwsAccount.secret-access-key | string | The secret key paired with the access key ID for authentication |
AwsAccount.region | string | Specifies the geographical region where the cloud service operates (e.g., us-east-1 for AWS S3). |
AwsAccount.host | string | The endpoint or base URL of the storage service, required for non-AWS S3 providers. Default is s3.amazonaws.com |
AwsAccount.use-ssl | boolean | Use HTTPS or HTTP. Default is false |
AwsAccount.path-style | boolean | Use URL instead of . Default is false . |
Expiration query parameter
You can provide an expiration query parameter which sets X-Amz-Expires query param of signed URL. Expiration time is measured in seconds, e.g. for 12 hours expiration you should provide 43200.
GET /aws/storage/my-account/aidboxtestbucket/example.txt?expiration=43200
If your implementation requires additional configuration parameters, reach out to us through Aidbox Users community or private support chat.
How to use compatible S3 storages
Some storages, like MinIO or Garage have compatible with Amazon S3 cloud storage service API. Here's an example of AwsAccount to use with local MinIO:
PUT /AwsAccount/my-minio
access-key-id: <access-key-id>
secret-access-key: <secret-access-key>
region: us-east-1
host: 127.0.0.1:9000
path-style: true
use-ssl: false