Using Object Storage with Atlas Buckets
Atlas Storage is S3-compatible, allowing you to use the AWS CLI for managing buckets and objects. You can also create and manage buckets via the Atlas Cloud web interface.
Via UI
Creating a Bucket
- Log in to the Atlas Cloud.
- Navigate to the Storage section.
- Click “Create Bucket”.
- Enter a unique bucket name.
- Set the quota (e.g., 1 GiB).
- Choose access policy, Public for web hosting, Private for secure storage (default).
- Click “OK”.
Uploading Files
- In the bucket’s detail page, go to the “Browse” tab.
- Click “Upload”.
- Select files or folders from your local machine.
- Confirm the upload.
Accessing Bucket Objects
Objects in public buckets can be accessed directly via HTTPS using either URL style:
- Path-style:
https://s3.runatlas.is/your-bucket/object-key - Virtual-hosted:
https://your-bucket.s3.runatlas.is/object-key
Both styles work interchangeably. Virtual-hosted style is the S3 standard and is used by most AWS SDKs by default.
Setting Bucket Access
- In the bucket’s detail page, go to the “Details” tab.
- Edit the “Access Policy” (Public for web access, Private for secure storage).
- Save changes.
Note: For fine-grained permissions, use bucket policies via CLI.
Generating Pre-signed URLs
Pre-signed URLs are not supported in the Atlas UI. Use the CLI method below.
Via CLI
Prerequisites
- AWS CLI installed on your local machine.
- Access key and secret key from your bucket in Atlas Cloud (found in Buckets > “your bucket” > Details).
Alternatives to AWS CLI
s3cmd
s3cmd is another tool for S3-compatible storage. Download from s3tools.org/s3cmd.
- Configure:
s3cmd --configure(enter access key, secret, endpoint) - Upload:
s3cmd put --recursive ./path/to/files s3://bucket/ - Sync:
s3cmd sync ./path/to/files s3://bucket/
s5cmd
s5cmd is a fast alternative. Download from github.com/peak/s5cmd.
- Set env vars:
export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... S3_ENDPOINT_URL=https://s3.runatlas.is - Upload:
s5cmd --endpoint-url https://s3.runatlas.is cp --recursive ./path/to/files s3://bucket/ - Sync:
s5cmd --endpoint-url https://s3.runatlas.is sync ./path/to/files s3://bucket/
Configure AWS CLI
-
Open your terminal and configure the AWS CLI with your Atlas credentials:
aws configure --profile atlas- AWS Access Key ID: Enter your bucket access key.
- AWS Secret Access Key: Enter your bucket secret key.
- Default region name:
us-east-1(any AWS region string works; leaving it blank breaks signing on many SDKs). - Default output format: Leave blank or enter
json.
-
Set the endpoint URL for Atlas Storage:
aws configure set endpoint_url https://s3.runatlas.is --profile atlasAlternatively, you can manually edit the AWS config files:
Example
~/.aws/config:[profile atlas] endpoint_url = https://s3.runatlas.isExample
~/.aws/credentials:[atlas] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEYThen run commands without
--profile atlasor set the profile as an environment variableexport AWS_PROFILE=atlas. Verify by listing your buckets:aws s3 ls --profile atlas
Creating a Bucket with aws CLI
To create a new bucket:
aws s3 mb s3://your-bucket-name --profile atlasUploading Files with aws CLI
To upload your static files to the bucket:
aws s3 cp ./path/to/your/static/files s3://your-bucket-name/ --recursive --profile atlasReplace ./path/to/your/static/files with the path to your local static files directory, your-bucket-name with your bucket name.
To sync and update your files (uploads new/changed files, deletes removed ones):
aws s3 sync ./path/to/your/static/files s3://your-bucket-name/ --profile atlasSetting Bucket Access with aws CLI
Buckets are private by default. To make objects publicly accessible, set a bucket policy (note "Effect": "Allow"):
aws s3api put-bucket-policy --bucket your-bucket-name --policy '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}' --profile atlasTo remove public access (make private):
aws s3api delete-bucket-policy --bucket your-bucket-name --profile atlasGenerating Pre-signed URLs with aws CLI
Create a temporary URL (expires in 1 hour by default):
aws s3 presign s3://your-bucket-name/path/to/file --expires-in 3600 --profile atlasFor more AWS CLI commands, refer to the AWS CLI S3 documentation.