Conjure.Storage.S3 (Conjure v0.1.1-alpha)

View Source

AWS S3 storage backend.

Provides durable storage with a local cache for Docker mounting. Requires the optional req dependency.

Options

  • :bucket - S3 bucket name (required)
  • :region - AWS region (default: "us-east-1")
  • :prefix - Key prefix for all objects (default: "sessions/")
  • :access_key_id - AWS access key (default: from AWS_ACCESS_KEY_ID env)
  • :secret_access_key - AWS secret key (default: from AWS_SECRET_ACCESS_KEY env)
  • :endpoint - Custom S3 endpoint URL (for S3-compatible services)
  • :cache_path - Local cache directory (default: System.tmp_dir!())
  • :async_upload - Upload to S3 asynchronously (default: false)

Example

# AWS S3
{:ok, session} = Conjure.Session.new_docker(skills,
  storage: {Conjure.Storage.S3,
    bucket: "my-sessions",
    region: "us-west-2"
  }
)

# S3-compatible service (MinIO, LocalStack)
{:ok, session} = Conjure.Session.new_docker(skills,
  storage: {Conjure.Storage.S3,
    bucket: "test-bucket",
    endpoint: "http://localhost:9000",
    access_key_id: "minioadmin",
    secret_access_key: "minioadmin"
  }
)

See Also

Summary

Types

t()

@type t() :: %Conjure.Storage.S3{
  access_key_id: String.t(),
  async_upload: boolean(),
  bucket: String.t(),
  cache_path: Path.t(),
  endpoint: String.t(),
  host: String.t(),
  prefix: String.t(),
  region: String.t(),
  secret_access_key: String.t(),
  session_id: String.t()
}