Skip to main content

cloider bucket command reference

cloider bucket manages your S3 compatible object storage: buckets and their settings, static websites, the files in them, previous versions of files, bucket policies, lifecycle and CORS rules, and the S3 access keys that let other tools reach your buckets.

cloider bucket <command> [flags]

Alias: cloider buckets. Buckets are named by their bucket name or id. Files are moved with presigned URLs, so their bytes go straight between your machine and the bucket, never through the API.

Subcommands​

Buckets

CommandDescription
cloider bucket listList buckets
cloider bucket getShow a bucket, its endpoint and URL
cloider bucket createCreate a bucket
cloider bucket deleteDelete a bucket and every file in it
cloider bucket statusPrint a bucket's status
cloider bucket usageShow a bucket's storage use and cost this month
cloider bucket regionsList the regions a bucket can be created in
cloider bucket visibilityShow or change whether anyone can read a bucket's files
cloider bucket versioningShow or change whether a bucket keeps previous versions of its files
cloider bucket websiteShow or change a bucket's static website
cloider bucket policy get, set, deleteShow, set or remove a bucket's S3 policy
cloider bucket lifecycle get, set, clearShow or replace a bucket's lifecycle rules
cloider bucket cors get, set, clearShow or replace a bucket's CORS rules

Files

CommandDescription
cloider bucket lsList a bucket's files and folders
cloider bucket uploadUpload files to a bucket
cloider bucket downloadDownload files from a bucket
cloider bucket rmDelete files, or whole folders with --prefix
cloider bucket mkdirCreate an empty folder
cloider bucket versionsList the versions a file has, newest first
cloider bucket restoreMake a previous version of a file the current one, or undelete it
cloider bucket deletedList deleted files a versioned bucket can still restore
cloider bucket rm-versionsPermanently delete versions of a file

Access keys

CommandDescription
cloider bucket key listList access keys
cloider bucket key createCreate an access key, its secret is shown once
cloider bucket key updateChange an access key's label, buckets or permission
cloider bucket key deleteDelete an access key, anything using it loses access

All subcommands also take the global flags.

cloider bucket list​

List the account's buckets with their region, status, access, size and creation time.

cloider bucket list [flags]
cloider bucket list
Output
NAME REGION STATUS ACCESS SIZE CREATED
acme-assets eu-central-2 Ready public 1.2 GiB 2026-09-05 10:20
acme-backups eu-central-2 Ready private 48.7 GiB 2026-09-05 10:24

SIZE is sampled periodically, not live. -o wide adds an ID column after the name, -q prints the bucket names, and -o json the API's list (hashed_id, bucket_name, region, public, status, size_bytes, size_sampled_at, endpoint, url, policy, created_at). Unlike other list commands, bucket list has no ls alias, because cloider bucket ls lists files.

MCP tool: list_buckets.

cloider bucket get​

Show one bucket, with its S3 endpoint and its public URL.

cloider bucket get <bucket> [flags]
cloider bucket get acme-assets
Output
Name: acme-assets
Region: eu-central-2
Status: Ready
Access: public
Size: 1.2 GiB (as of 2026-10-20 06:00)
Endpoint: https://s3.eu-central-2.cloider.com
URL: https://acme-assets.s3.eu-central-2.cloider.com
Policy: none
Website: off
Created: 2026-09-05 10:20

Endpoint is what S3 tools connect to; URL is where a public bucket's files can be read over HTTPS. Policy says none, or set, see `cloider bucket policy get acme-assets` . Website says off, or the website's address followed by the domains that serve it, such as https://acme-site.s3-website.eu-central-2.cloider.com, https://docs.example.com. MCP tool: get_bucket.

cloider bucket create​

Create a bucket. Its name is global across Cloider and can't be changed later: 3 to 63 lowercase letters, digits and dashes.

cloider bucket create <name> [flags]
FlagTypeDefaultDescription
--regionstringthe first regionRegion code, see cloider bucket regions
--publicboolfalseLet anyone read its files over HTTPS
--versioningboolfalseKeep previous versions of overwritten and deleted files
--websiteboolfalseServe it as a static website, with index.html as its index document. Needs --public
-w, --waitboolfalseWait until the bucket is Ready
--timeoutduration15m0sHow long --wait waits
cloider bucket create acme-backups --versioning
Output
✓ Created bucket acme-backups
cloider bucket create acme-assets --public --wait
Output
✓ Created bucket acme-assets
✓ Bucket acme-assets is ready

-q prints the bucket's name and -o json the full bucket object. See Create a bucket. MCP tool: create_bucket.

cloider bucket delete​

Delete a bucket and every file in it.

cloider bucket delete <bucket> [flags]
FlagTypeDefaultDescription
-w, --waitboolfalseWait until the bucket is gone
--timeoutduration15m0sHow long --wait waits

The command asks you to type the bucket's name to confirm; pass --yes to skip it.

cloider bucket delete acme-old
Output
This permanently deletes bucket acme-old.
Type acme-old to confirm: acme-old
✓ Deleting bucket acme-old

See Delete a bucket for buckets with data protection. MCP tool: delete_bucket.

cloider bucket status​

Print a bucket's status and nothing else.

cloider bucket status <bucket> [flags]
cloider bucket status acme-assets
Output
Ready

With -o json it prints {"status": "Ready"}.

cloider bucket usage​

Show a bucket's average storage this month, its cost so far, forecasts, and one line per day.

cloider bucket usage <bucket> [flags]
cloider bucket usage acme-backups
Output
Bucket: acme-backups
Month: 2026-10
Average storage: 48.24 GiB
Cost so far: $0.09
Forecast this month: $0.93
Forecast next month: $0.94

DATE STORAGE COST
2026-10-01 47.90 GiB $0.03
2026-10-02 48.12 GiB $0.03
2026-10-03 48.70 GiB $0.03

See Usage and billing.

cloider bucket regions​

List the regions a bucket can be created in, with their S3 endpoints.

cloider bucket regions [flags]
cloider bucket regions
Output
CODE NAME ENDPOINT
eu-central-2 Europe https://s3.eu-central-2.cloider.com

MCP tool: list_bucket_regions.

cloider bucket visibility​

Show whether a bucket is public or private, or change it. A public bucket lets anyone read its files over HTTPS; a private one needs an access key or a presigned URL.

cloider bucket visibility <bucket> [public|private] [flags]
cloider bucket visibility acme-assets
Output
public
cloider bucket visibility acme-backups private
Output
✓ Bucket acme-backups is now private

Making a bucket public asks Anyone will be able to read every file in ... Continue? [y/N]; pass --yes to skip it. A bucket whose website is on can't be made private: The bucket's website needs it public, turn the website off first. -o json on the read form prints {"public": true}. See Public and private buckets. MCP tool: set_bucket_visibility.

cloider bucket versioning​

Show whether a bucket keeps previous versions of its files, or turn it on or off. Once versioning has been on, turning it off suspends it: versions already kept stay until they are deleted or a lifecycle rule expires them.

cloider bucket versioning <bucket> [on|off] [flags]
cloider bucket versioning acme-backups
Output
Off
cloider bucket versioning acme-backups on
Output
✓ Versioning of acme-backups is Enabled

The state is Enabled, Suspended, or Off for a bucket that was never versioned. on and off also accept true, yes, enable, enabled and false, no, disable, disabled. See Versioning. MCP tools: get_bucket_versioning, set_bucket_versioning.

cloider bucket website​

Show a bucket's static website, or turn it on or off and set its documents. The website serves the bucket at https://<bucket>.s3-website.eu-central-2.cloider.com: a path ending in a slash gets the index document, and anything missing gets the error document with a 404. The bucket has to be public.

cloider bucket website <bucket> [on|off] [flags]
FlagTypeDefaultDescription
--indexstringthe current one, index.html at firstThe index document, a file name such as index.html
--errorstringthe current one, the built-in page at firstThe error document, a key in the bucket such as 404.html. "" goes back to the built-in page
cloider bucket website acme-site on --error 404.html
Output
✓ Website of acme-site is on at https://acme-site.s3-website.eu-central-2.cloider.com

Without on or off and without flags, it shows the settings:

cloider bucket website acme-site
Output
Website: https://acme-site.s3-website.eu-central-2.cloider.com
Index document: index.html
Error document: 404.html

The flags change only what you give, so cloider bucket website acme-site --error index.html sets the error document and leaves the website on or off as it is. off is refused while a domain points at the website, with Domains still point at this website, remove their targets first. on and off accept the same words as versioning. To serve the website on a domain, run cloider target create <domain> --bucket <bucket>, see cloider target. See Static websites. MCP tools: get_bucket_website, set_bucket_website.

cloider bucket policy​

Show, set or remove a bucket's S3 bucket policy, a JSON document that grants or denies S3 actions to access keys. Principals in a policy are access key ids, see cloider bucket key list.

CommandDescription
cloider bucket policy get <bucket>Print a bucket's policy
cloider bucket policy set <bucket> -f <policy.json>Replace a bucket's policy (-f - reads stdin)
cloider bucket policy delete <bucket>Remove a bucket's policy. Alias: rm

set flags:

FlagTypeDefaultDescription
-f, --filestring(required)Policy file, - for stdin
cloider bucket policy get acme-assets
Output
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"AWS": ["CLDRZ8Q4M2X7KD1PLW0B"]},
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::acme-assets/*"]
}
]
}

A bucket without a policy prints Bucket acme-assets has no policy. (or null with -o json). The policy prints as JSON by default, and as YAML with -o yaml.

cloider bucket policy set acme-assets -f policy.json
cat policy.json | cloider bucket policy set acme-assets -f -
cloider bucket policy delete acme-assets --yes
Output
✓ Set the policy of acme-assets
✓ Removed the policy of acme-assets

The file must be valid JSON (policy.json is not valid json otherwise, exit code 2); the API checks the policy itself. delete asks for confirmation. See Bucket policies. MCP tools: set_bucket_policy, delete_bucket_policy (the policy is in get_bucket).

cloider bucket lifecycle​

Show or replace a bucket's lifecycle rules, which expire files, previous versions and unfinished uploads after a number of days.

CommandDescription
cloider bucket lifecycle get <bucket>List a bucket's lifecycle rules
cloider bucket lifecycle set <bucket> -f <rules.json>Replace every lifecycle rule of a bucket (-f - reads stdin)
cloider bucket lifecycle clear <bucket>Remove every lifecycle rule of a bucket

set flags:

FlagTypeDefaultDescription
-f, --filestring(required)Rules file, - for stdin

A rules file is a JSON array of rules, or an object {"rules": [...]}. Each rule has:

FieldTypeDescription
idstringA name for the rule
prefixstringOnly files whose key starts with this. Empty for the whole bucket
enabledboolWhether the rule runs
expire_daysintDelete files this many days after they were written. 0 turns it off
noncurrent_daysintDelete previous versions this many days after they were replaced. 0 turns it off
abort_multipart_daysintAbort unfinished multipart uploads after this many days. 0 turns it off
rules.json
[
{"id": "tmp", "prefix": "tmp/", "enabled": true, "expire_days": 7, "noncurrent_days": 0, "abort_multipart_days": 1},
{"id": "old-versions", "prefix": "", "enabled": true, "expire_days": 0, "noncurrent_days": 30, "abort_multipart_days": 0}
]
cloider bucket lifecycle set acme-backups -f rules.json
Output
✓ acme-backups now has 2 lifecycle rule(s)
cloider bucket lifecycle get acme-backups
Output
PREFIX ENABLED EXPIRE NONCURRENT ABORT UPLOADS
tmp/ yes 7d - 1d
- yes - 30d -

-o wide adds the rule ID column. set replaces every rule. If the bucket has rules set through the S3 API with options the CLI doesn't show, get warns about them and set and clear ask before replacing them. clear always asks for confirmation; pass --yes to skip. See Lifecycle rules. MCP tools: get_bucket_lifecycle, set_bucket_lifecycle.

cloider bucket cors​

Show or replace a bucket's CORS rules, which decide the websites that can use the bucket from a browser. Without rules any website can. With rules only the origins they list can, and the Cloider dashboard always can.

CommandDescription
cloider bucket cors get <bucket>List a bucket's CORS rules
cloider bucket cors set <bucket> -f <rules.json>Replace every CORS rule of a bucket (-f - reads stdin)
cloider bucket cors clear <bucket>Remove every CORS rule of a bucket, so any website can use it again

set flags:

FlagTypeDefaultDescription
-f, --filestring(required)Rules file, - for stdin

A rules file is a JSON array of rules, or an object {"rules": [...]}. Each rule has:

FieldTypeDescription
idstringAn optional name for the rule
allowed_originsstring listOrigins like https://app.example.com, https://*.example.com for its subdomains, * for any website
allowed_methodsstring listAny of GET, HEAD, PUT, POST and DELETE
allowed_headersstring listRequest headers a page may send. * for any, or a prefix like x-amz-*
expose_headersstring listResponse headers a page's script may read, like ETag
max_age_secondsintHow long browsers may reuse a preflight answer. 0 leaves it to the browser
cors.json
[
{"id": "web-app", "allowed_origins": ["https://app.example.com"], "allowed_methods": ["GET", "PUT"], "allowed_headers": ["Content-Type"], "expose_headers": ["ETag"], "max_age_seconds": 3000},
{"id": "anyone-reads", "allowed_origins": ["*"], "allowed_methods": ["GET", "HEAD"]}
]
cloider bucket cors set acme-assets -f cors.json
Output
✓ acme-assets now has 2 CORS rule(s)
cloider bucket cors get acme-assets
Output
ID ORIGINS METHODS HEADERS
web-app https://app.example.com GET,PUT Content-Type
anyone-reads * GET,HEAD -

-o wide adds the EXPOSE and MAX AGE columns. set replaces every rule. clear always asks for confirmation; pass --yes to skip. See CORS. MCP tools: get_bucket_cors, set_bucket_cors.

cloider bucket ls​

List the files and folders in a bucket, or in a folder of it.

cloider bucket ls <bucket> [prefix] [flags]
ArgumentDescription
<bucket>Name or id of the bucket
[prefix]Folder to list, for example images/. A trailing / is added if missing
FlagTypeDefaultDescription
-r, --recursiveboolfalseList everything under the prefix, not just its first level
cloider bucket ls acme-assets
Output
KEY SIZE MODIFIED
images/ DIR -
site/ DIR -
favicon.ico 4.2 KiB 2026-10-02 18:11
robots.txt 67 B 2026-10-02 18:11
cloider bucket ls acme-assets images/ -r
Output
KEY SIZE MODIFIED
images/hero.jpg 412.8 KiB 2026-10-12 09:03
images/logo.png 18.5 KiB 2026-10-02 18:11
images/icons/cart.svg 1.1 KiB 2026-10-02 18:11

-q prints the keys only. -o json prints {"prefix", "folders", "objects"} (no folders with -r), each object with key, name, size and last_modified. MCP tool: list_bucket_objects.

cloider bucket upload​

Upload files to a bucket, up to 5 GB each.

cloider bucket upload <bucket> <path>... [flags]
ArgumentDescription
<bucket>Name or id of the bucket
<path>...One or more local files, or directories with -r
FlagTypeDefaultDescription
--prefixstringthe bucket's rootFolder to upload into, for example images/
--keystringExact key for a single file
-r, --recursiveboolfalseUpload directories with what is in them

A file lands at <prefix><file name>, or at --key. With -r, a directory's contents land under the prefix, keeping their paths inside the directory (.DS_Store files are skipped). The content type is set from the file extension.

cloider bucket upload acme-assets logo.png --prefix images/
Output
✓ logo.png → images/logo.png
cloider bucket upload acme-assets ./dist -r --prefix site/
Output
✓ dist/index.html → site/index.html
✓ dist/assets/app.js → site/assets/app.js
✓ dist/assets/app.css → site/assets/app.css
✓ Uploaded 3 files (148.6 KiB) to acme-assets
cloider bucket upload acme-backups dump.sql.gz --key orders/2026-10-20.sql.gz

-q prints each uploaded key. A file over 5 GB is refused with a hint to use an S3 tool.

Large syncs

Each file costs one API call, and the API allows 100 a minute, so the CLI paces transfers. For many files or very large ones, create an access key with cloider bucket key create --label sync --print-env and use any S3 tool, such as aws s3 sync or rclone, against the bucket's endpoint. See S3 tools.

MCP tool: upload_bucket_objects.

cloider bucket download​

Download files from a bucket.

cloider bucket download <bucket> <key>... [flags]
ArgumentDescription
<bucket>Name or id of the bucket
<key>...One or more keys, or folder prefixes with -r
FlagTypeDefaultDescription
-d, --deststringthe current directoryWhere to write: a file or directory, - for stdout
--version-idstringDownload this version of the file (one file only)
-r, --recursiveboolfalseDownload everything under the given folder prefixes

One file is written to --dest (a file name, a directory, or - for stdout), else into the current directory under its own name. Several files, or -r with folder prefixes, are written into the --dest directory keeping their paths below the prefix. Files are written through a temporary file, so an interrupted download never leaves half a file, and a key containing ../ can't write outside the destination.

cloider bucket download acme-assets images/logo.png
Output
✓ images/logo.png → logo.png
cloider bucket download acme-backups orders/2026-10-20.sql.gz --dest - | gunzip | head
cloider bucket download acme-assets site/ -r --dest ./site
cloider bucket download acme-backups orders/latest.sql.gz --version-id Ux8Lw0q7M2Nn1pZ5t9QvKc4RbYdE6sAa

MCP tool: download_bucket_objects.

cloider bucket rm​

Delete files, or everything under a folder with --prefix.

cloider bucket rm <bucket> [key]... [flags]
FlagTypeDefaultDescription
--prefixstring, repeatableDelete everything under this folder

Deleting folders asks Delete everything under ... in ...? [y/N]; pass --yes to skip it. Deleting named files doesn't ask. An empty --prefix (the whole bucket) is refused: delete the bucket instead.

cloider bucket rm acme-assets images/old.png images/older.png
Output
✓ Deleted 2 files from acme-assets
cloider bucket rm acme-assets --prefix tmp/ --yes
Output
✓ Deleted 1 folder from acme-assets

In a bucket with versioning on, a deleted file keeps its versions: see bucket deleted and bucket restore. MCP tool: delete_bucket_objects.

cloider bucket mkdir​

Create an empty folder.

cloider bucket mkdir <bucket> <folder/> [flags]
cloider bucket mkdir acme-assets uploads/2026
Output
✓ Created uploads/2026/ in acme-assets

MCP tool: create_bucket_folder.

cloider bucket versions​

List the versions a file has in a versioned bucket, newest first.

cloider bucket versions <bucket> <key> [flags]
cloider bucket versions acme-backups orders/latest.sql.gz
Output
VERSION ID SIZE MODIFIED
Ux8Lw0q7M2Nn1pZ5t9QvKc4RbYdE6sAa 48.2 MiB 2026-10-20 03:00 latest
8sQmV2rT5xLpK0wN3jHcYbZ7fD1gE4uA 47.9 MiB 2026-10-19 03:00

A delete marker shows deleted as its size. When a file has many versions, only the newest are listed, with a warning. MCP tool: list_bucket_object_versions.

cloider bucket restore​

Make a previous version of a file the current one. Given the version id of a delete marker (see bucket deleted), the file is undeleted.

cloider bucket restore <bucket> <key> --version-id <id> [flags]
FlagTypeDefaultDescription
--version-idstring(required)Version to restore, see bucket versions
cloider bucket restore acme-backups orders/latest.sql.gz --version-id 8sQmV2rT5xLpK0wN3jHcYbZ7fD1gE4uA
Output
✓ Restored orders/latest.sql.gz in acme-backups

MCP tool: restore_bucket_object_version.

cloider bucket deleted​

List deleted files that a bucket with versioning can still restore, with the version id of each file's delete marker.

cloider bucket deleted <bucket> [prefix] [flags]
cloider bucket deleted acme-assets images/
Output
KEY DELETED MARKER VERSION ID
images/old/ DIR -
images/banner.png 2026-10-18 12:30 Qm3Zt8Lw1Nn5pX7r9VbKc2RyYdE4sAa0

Undelete one with cloider bucket restore acme-assets images/banner.png --version-id Qm3Zt8Lw1Nn5pX7r9VbKc2RyYdE4sAa0. MCP tool: list_deleted_bucket_objects.

cloider bucket rm-versions​

Permanently delete specific versions of a file. This is the only way, besides lifecycle rules, to destroy data kept by versioning.

cloider bucket rm-versions <bucket> <key> --version-id <id>... [flags]
FlagTypeDefaultDescription
--version-idstring, repeatable(required)Version to delete

The command asks Permanently delete N versions of ...? This can't be undone. [y/N]; pass --yes to skip it.

cloider bucket rm-versions acme-backups orders/latest.sql.gz --version-id 8sQmV2rT5xLpK0wN3jHcYbZ7fD1gE4uA --yes
Output
✓ Deleted 1 version of orders/latest.sql.gz

Buckets with data protection may refuse to delete versions. See Data protection. MCP tool: delete_bucket_object_versions.

cloider bucket key list​

List the account's S3 access keys, which buckets each opens and its permission.

cloider bucket key list [flags]

Alias: the group is also cloider bucket keys.

cloider bucket key list
Output
ACCESS KEY LABEL BUCKETS PERMISSION STATUS CREATED
CLDRZ8Q4M2X7KD1PLW0B ci-deploy acme-assets Read & Write Ready 2026-09-12 14:03
CLDRP4N8R2Y6U0I5O9A1 backup-reader all buckets Read Ready 2026-10-01 08:45

-o wide adds the key's ID. Keys are named in other commands by their access key id, label or id. See Access keys. MCP tool: list_bucket_keys.

cloider bucket key create​

Create an access key for S3 tools. The secret key is shown once.

cloider bucket key create --label <label> [flags]
FlagTypeDefaultDescription
--labelstring(required)What the key is for
--bucketstring, repeatableBucket the key opens. Without it, the key opens every bucket
--allboolfalseOpen every bucket of the account, including ones created later. Can't be combined with --bucket
--read-onlyboolfalseOnly read, never write or delete
--print-envboolfalsePrint AWS_* shell exports instead
cloider bucket key create --label ci-deploy --bucket acme-assets
Output
✓ Created access key ci-deploy
Access key: CLDRZ8Q4M2X7KD1PLW0B
Secret key: wJ4lrXUtnFEMI2K7MDENGbPxRfiCYEXAMPLEKEY1
Endpoint: https://s3.eu-central-2.cloider.com
Region: eu-central-2
Buckets: acme-assets
Permission: Read & Write
! The secret key is not shown again, keep it now.

--print-env prints shell exports that the AWS CLI and most S3 SDKs read, so you can create a key and use it in one go:

eval "$(cloider bucket key create --label sync --bucket acme-assets --print-env)"
aws s3 sync ./dist s3://acme-assets
Output of --print-env
export AWS_ACCESS_KEY_ID=CLDRZ8Q4M2X7KD1PLW0B
export AWS_SECRET_ACCESS_KEY=wJ4lrXUtnFEMI2K7MDENGbPxRfiCYEXAMPLEKEY1
export AWS_ENDPOINT_URL=https://s3.eu-central-2.cloider.com
export AWS_REGION=eu-central-2

-q prints the access key id and the secret key on two lines; -o json prints the API's answer ({"key": {...}, "secret_key": "..."}). MCP tool: create_bucket_key.

cloider bucket key update​

Change an access key's label, the buckets it opens, or its permission. Only the flags you pass are changed.

cloider bucket key update <key> [flags]
ArgumentDescription
<key>Access key id, label or id of the key
FlagTypeDefaultDescription
--labelstringNew label
--bucketstring, repeatableReplace the buckets the key opens
--allboolOpen every bucket of the account. Can't be combined with --bucket
--read-onlyboolOnly read. --read-only=false gives write access back
cloider bucket key update ci-deploy --bucket acme-assets --bucket acme-backups
cloider bucket key update backup-reader --all --read-only=false
Output
✓ Updated access key ci-deploy

Without any flag it fails with nothing to change, pass --label, --bucket, --all or --read-only. MCP tool: update_bucket_key.

cloider bucket key delete​

Delete an access key. Anything using it loses access immediately.

cloider bucket key delete <key> [flags]

Alias: cloider bucket key rm. The command asks you to type the access key id to confirm; pass --yes to skip it.

cloider bucket key delete ci-deploy
Output
This permanently deletes access key CLDRZ8Q4M2X7KD1PLW0B.
Type CLDRZ8Q4M2X7KD1PLW0B to confirm: CLDRZ8Q4M2X7KD1PLW0B
✓ Deleted access key ci-deploy

MCP tool: delete_bucket_key.

Frequently asked questions

How do I create a bucket with the Cloider CLI?

Run cloider bucket create acme-assets. Add --public to let anyone read its files, --versioning to keep previous versions, and --region to pick a region from cloider bucket regions.

How do I upload a folder to a bucket?

Run cloider bucket upload acme-assets ./dist -r --prefix site/. Files keep their paths below the folder. For very large syncs, create an access key with --print-env and use aws s3 sync or rclone.

How do I download a file to stdout?

Use --dest -: cloider bucket download acme-backups dump.sql.gz --dest - | gunzip.

How do I get S3 credentials for the AWS CLI?

Run eval "$(cloider bucket key create --label sync --bucket acme-assets --print-env)". It exports AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_ENDPOINT_URL and AWS_REGION, which the AWS CLI and most SDKs read.

How do I restore a deleted file?

In a bucket with versioning on, list deleted files with cloider bucket deleted acme-assets, then run cloider bucket restore acme-assets <key> --version-id <marker version id>.

How do I host a static website in a bucket?

Make the bucket public, upload the site with cloider bucket upload acme-site ./dist -r, and run cloider bucket website acme-site on. The site is then at https://acme-site.s3-website.eu-central-2.cloider.com, and cloider target create example.com --bucket acme-site serves it on your domain.

How do I delete a folder in a bucket?

Run cloider bucket rm acme-assets --prefix tmp/ --yes. It deletes everything under the folder.