page:guides:astro:object client

Configure S3-compatible access for Astro

Summary

Object storage client for an Astro app on Ample. Verified on Astro: bucket credentials delivered as encrypted S3_* environment variables and a validated PutObject/GetObject round-trip linked to a database row (upload=ok linked=ok). Build and start: astro build with the @astrojs/node standalone adapter then node ./dist/server/entry.mjs on the node-22 template.

Representative Queries

Resource Requirements

Infrastructure Requirements

  1. Compute
    Status: Verified
    Summary: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.

  2. S3-compatible object storage
    Status: Verified
    Summary: Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary. Other S3 operations are not verified.

Prerequisites

Steps

Build and start

astro build with the @astrojs/node standalone adapter then node ./dist/server/entry.mjs on the node-22 template; the server must bind 0.0.0.0 on PORT.

Create the bucket and pass its credentials

Create it once with ample bucket create, then pass endpoint, region, bucket and keys with --env; use path-style addressing.
Command:
ample deploy . --name --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...

Verify

Fetch the live URL and /p/browser-file-uploads on the example; on failure read the build and runtime logs.
Command:
ample logs --kind build

Examples

Astro pattern fixture

Verified object storage client on Astro.
Source Ref: tests/deploy-canaries/astro-patterns

Success Checks

  1. App responds on its public URL
    Kind: http_get
    Path: /
    Expect: ample canary astro patterns
  2. Browser-file-uploads check from the example
    Kind: http_get
    Path: /p/browser-file-uploads
    Expect: see the pattern fixture checks

Limitations

Cost Estimate

Evidence Summary

Next Actions