Out Plane
bucket

bucket create

Create a bucket, private unless told otherwise.

writes--dry-run

Creates a bucket, private unless --public is given. A short random suffix is added to the name to make the address unique, and the result's bucketName is the name S3 clients use.

A new bucket's address can take a few minutes to start working, for S3 clients as well as public links. A new bucket has no key, and bucket key create makes one. A team can have up to 5 buckets on every plan, and deleting one is the only way to make room.

Usage

outplane bucket create <NAME> [flags]

Arguments

ArgumentTypeDescription
NAMEstring3 to 38 lowercase letters, numbers and single hyphens. Required. Must match ^[a-z0-9][a-z0-9-]{1,36}[a-z0-9]$.

Flags

FlagTypeDescription
--publicboolLet anyone with a file's link read it. Private without this.

The global flags apply as well.

Output

FieldTypeDescription
idstring
namestringWhat the platform calls it, unique in the team.
bucketNamestringThe name S3 clients use. It carries a suffix, so it differs from name.
publicboolThe setting last accepted: whether anyone with a file's link can read it. A change takes minutes to reach every request. Listing stays off either way.
endpointstringThe S3 endpoint. Clients need virtual-hosted addressing; path-style requests fail.
regionstringThe region clients sign with, always auto.
urlstringThe bucket's own address. It serves a file without a signature only when the bucket is public, and after a change to private it can keep doing so for some minutes.
createdAtstring | nullRFC 3339, UTC.
changedboolFalse for a dry run, where what only the server decides is null.

Examples

A private bucket

outplane bucket create uploads

A bucket whose files are served by link

outplane bucket create assets --public

Check the request without creating anything

outplane bucket create uploads --dry-run --json
{
  "bucketName": null,
  "changed": false,
  "name": "uploads",
  "public": false
}

What to Know

  • A bucket is private unless --public is given.
  • A new bucket's address can take a few minutes to start working, for S3 clients as well as public links. A TLS error right after create means it is not ready yet.
  • A new bucket has no key, and clients need one. bucket key create makes one and prints its secret on stdout, which makes it a command for a person at their own terminal when an agent is driving.
  • A name taken in the team is exit 6, bucket.name_taken.
  • The number of buckets a team can have is fixed, the same on every plan. Reaching it is exit 7, bucket.limit_reached, and only deleting a bucket makes room.
  • A team without an active subscription gets exit 7, bucket.subscription_inactive. Billing is in the console.
  • A timeout can still finish on the server, and bucket list says whether it did. Running this again after one that finished is exit 6.

Errors

Beyond 0 for success, this command exits with:

ExitKindMeaning
2usageInvalid arguments, unknown flag, or client-side validation failure.
3authNot authenticated, token revoked or expired, or forbidden for this team.
5not_foundThe named resource does not exist, or is not visible to this credential.
6conflictThe resource already exists, or a concurrent change won.
7quotaPlan limit reached or payment required. Not a rate limit; retrying will not help.
8upstreamThe Out Plane API returned a server error.
124timeoutA client-side deadline expired. The server operation may still be running.

The code on the error object is one of bucket.name_invalid, bucket.name_taken, bucket.limit_reached, bucket.subscription_inactive, usage.missing_argument, usage.empty_argument, context.no_team. Branch on that, or on the exit status. The message is prose and changes.

On this page