Goal
Use S2 as an observable application service instead of an opaque file container.Prerequisites
- An existing S2 bucket
- A StackShift API token
Workflow
1
Create a managed event subscription for the object events and key patterns the application needs.
2
Pull pending deliveries, process them idempotently, and acknowledge success or request a retry.
3
Use access logs and analytics to investigate traffic, errors, bandwidth, and busy prefixes.
4
Create CSV or JSONL inventory exports when a workload needs a full object manifest.
5
Enable website settings and verify a custom domain when the bucket should serve static content.
Managed object events
- Event types are
object.created,object.overwritten, andobject.deleted. - Subscriptions can filter by object-key prefix and suffix.
- S2 stores deliveries in a managed queue; clients pull batches and acknowledge each delivery.
- Acknowledgement can mark processing complete or request another attempt after a recoverable failure.
- Pull and acknowledgement operations remain tenant- and bucket-authorized through the StackShift control plane.
Analytics and access logs
Bucket analytics report stored bytes, object count, request count, errors, bandwidth, and the most active prefixes. The default analytics window is the previous 30 days, or you can provide an RFC 3339 start time. Access logs record the operation, object key, status, bytes in and out, request identifier, access key when available, and occurrence time. Use them to distinguish authentication, quota, application, and service failures.Inventory exports and catalogs
Inventory exports produce CSV or JSONL manifests and can be limited to one prefix. Each export has a durable status, row count, and authenticated download operation. Catalogs expose object metadata through an Iceberg-compatible metadata document. The bounded query API supports selected columns from the object inventory with an optional key-prefix filter and a limit up to 1,000 rows.Static websites and custom domains
Website mode serves the configured index object for root and directory requests and can use a configured error object for missing content. Configure cache-control headers on uploaded objects to control browser and intermediary caching. Custom domains use the StackShift domain-verification flow. After verification, attach the active domain through bucket settings and keep DNS aligned with the target returned by StackShift.Expected result
Object changes can drive durable application work, operators can explain storage activity, and static buckets can be published intentionally.
Common failures
Related guides
S3 operations and presigned access
Use the supported S3 operations, conditional requests, object metadata, tags, multipart uploads, and presigned URLs.
Versioning, lifecycle, and retention
Protect object history, restore earlier versions, automate aging policies, and prevent protected objects from being deleted too early.
Capacity, monitoring, and recovery
Monitor bucket usage, handle temporary service responses, protect critical objects, and validate application recovery.