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.
Accessing S3 from inside Atlas Cloud
Hosts and networks inside Atlas Cloud reach the object storage endpoint through a static hosts entry that maps s3.runatlas.is to 149.126.81.1. Add the entry on each host that needs bucket access.
Linux
Edit /etc/hosts as root:
echo "149.126.81.1 s3.runatlas.is" | sudo tee -a /etc/hostsWindows
Open an editor as Administrator and edit C:\Windows\System32\drivers\etc\hosts, then add the line:
149.126.81.1 s3.runatlas.isThen flush the DNS cache:
ipconfig /flushdnsRemoving the entry
To stop routing s3.runatlas.is through the static mapping, delete the line from the hosts file.
Via UI
Creating a Bucket
- Log in to the Atlas Cloud Platform.
- 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 are accessed directly via HTTPS. Two addressing styles are available:
- Path-style (simplest default):
https://s3.runatlas.is/your-bucket/object-key - Virtual-hosted style:
https://your-bucket.s3.runatlas.is/object-key
Path-style works out of the box and is the recommended default. Virtual-hosted style is also supported, but routing the bucket subdomain to the S3 endpoint may require a local /etc/hosts entry pointing your-bucket.s3.runatlas.is at the S3 endpoint. Because most AWS SDKs and CLIs default to virtual-hosted style, set path-style addressing in your client if you prefer it (see Configure AWS CLI).
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.
Credentials
Each bucket exposes an access key and secret key on its “Details” tab (Storage > Buckets > “your bucket” > Details). Use these to authenticate the AWS CLI and other S3 clients.
The keys are scoped per account, not per bucket: every bucket created under the same account shares the same access key and secret key. To use separate credentials, create buckets in different accounts within the domain.
Via CLI
Prerequisites
- AWS CLI installed on your local machine.
- Access key and secret key from your bucket in Atlas Cloud (found in Storage > Buckets > “your bucket” > Details).
Alternatives to AWS CLI
Path-style addressing against the https://s3.runatlas.is endpoint is the simplest configuration for the clients below. Virtual-hosted style is also supported but may require a local /etc/hosts entry for the bucket subdomain.
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: Leave blank.
- Default output format: Leave blank or enter
json.
-
Set the endpoint URL and select path-style addressing for Atlas Storage. Path-style is the simplest default; without it the AWS CLI uses virtual-hosted style, which may require a local
/etc/hostsentry for the bucket subdomain:aws configure set endpoint_url https://s3.runatlas.is --profile atlas aws configure set s3.addressing_style path --profile atlasAlternatively, you can manually edit the AWS config files:
Example
~/.aws/config:[profile atlas] endpoint_url = https://s3.runatlas.is s3 = addressing_style = pathFor SDKs, set the equivalent path-style option (for example
force_path_style = truein boto3, orforcePathStyle: truein the AWS SDK for JavaScript).Example
~/.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").
The policy below grants anonymous s3:GetObject on every object in the bucket (Principal: "*"), so every current object and anything uploaded later becomes world-readable. Apply it only to buckets dedicated to public assets. Keep private and state buckets private. To expose only part of a bucket, scope the Resource to a prefix, for example arn:aws:s3:::your-bucket-name/public/*:
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.