celld supports Google Cloud Storage via the Cloud Storage XML API with generation preconditions. Using aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/denoland/celld/llms.txt
Use this file to discover all available pages before exploring further.
gs:// bucket URL selects GCS as the storage backend — celld then authenticates with Google credentials instead of AWS credentials and uses the GCS-native precondition protocol rather than the S3 If-Match header.
For GCS, celld uses the
x-goog-if-generation-match precondition header, not the S3 If-Match header. The condition compares the object generation number rather than an ETag. This is intentional: Cloud Storage does not apply If-Match to a PUT, so celld sends the GCS request dialect when the bucket URL begins with gs://.Authentication options
celld supports three ways to authenticate against a GCS bucket: Application Default Credentials (ADC) The simplest option for local development and for workloads that run inside Google Cloud. Run:CELLD_BUCKET.
Service account key file
Point GOOGLE_APPLICATION_CREDENTIALS at a JSON key file for a service account that has access to the bucket:
GOOGLE_SERVICE_ACCOUNT_KEY. This is useful in containerised environments where mounting a file is inconvenient:
Compute Engine
On a Compute Engine instance, celld can use the service account attached to the instance. However, the default access scope for Compute Engine instances permits storage reads only. celld requires both read and write access to the bucket, so you must create the instance with thecloud-platform scope:
cloud-platform scope, the IAM role of the attached service account controls bucket access. Grant the service account at least the Storage Object Admin role on the bucket.
Setup
Create a GCS bucket
Create a bucket in the Google Cloud console or with the Uniform bucket-level access simplifies IAM: permissions apply to the whole bucket rather than individual objects.
gcloud CLI:Authenticate
Choose one of the authentication options above. For local development, Application Default Credentials are the easiest:For a service account, export the credentials:
Notes
- A
gs://bucket URL takes noS3_ENDPOINTand noAWS_*credentials. celld ignores the storage region for GCS. - S3 static credentials (
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) do not apply to ags://bucket. - celld does not read
~/.awsprofiles or SSO logins for GCS. - The GCS backend uses the Cloud Storage XML API, not the JSON API. The
x-goog-if-generation-matchprecondition provides the conditional-create and conditional-overwrite semantics that celld requires for ownership fencing. See Ownership and fencing for the full mechanism.