# @suaveplan/storage-s3 - S3-compatible object storage adapter for @suaveplan/storage: implements AbstractStorage backed by @aws-sdk/client-s3 with presigned URLs, multipart upload, retry integration, and OTel instrumentation. ## Summary S3-compatible object storage adapter for `@suaveplan/storage`. Extends `AbstractStorage` backed by `@aws-sdk/client-s3` with presigned URL generation, multipart upload, retry integration, and OpenTelemetry instrumentation. ## Documentation tree - [registry](./src/registry/registry/registry.md) — _(no submodules)_ - [registry](./src/registry/registry/registry.md) — _(no submodules)_ - [s3](./src/s3/s3.md) — _(no submodules)_ - [s3](./src/s3/s3.md) — _(no submodules)_ - [utils](./src/utils/credential-validator.md) — _(no submodules)_ - [credential-validator](./src/utils/credential-validator.md) — _(no submodules)_ - [registry](./src/registry/registry/registry.md) — _(no submodules)_- [s3](./src/s3/s3.md) — _(no submodules)_- [s3](./src/s3/s3.md) — _(no submodules)_- [utils](./src/utils/credential-validator.md) — _(no submodules)_- [credential-validator](./src/utils/credential-validator.md) — _(no submodules)_- [registry](./src/registry/registry/registry.md) — _(no submodules)_- [s3](./src/s3/s3.md) — _(no submodules)_- [s3](./src/s3/s3.md) — _(no submodules)_- [utils](./src/utils/credential-validator.md) — _(no submodules)_- [credential-validator](./src/utils/credential-validator.md) — _(no submodules)_- [registry](./src/registry/registry/registry.md) — _(no submodules)_- [s3](./src/s3/s3.md) — _(no submodules)_- [s3](./src/s3/s3.md) — _(no submodules)_- [utils](./src/utils/credential-validator.md) — _(no submodules)_- [credential-validator](./src/utils/credential-validator.md) — _(no submodules)_- [registry](./src/registry/registry/registry.md) — _(no submodules)_- [s3](./src/s3/s3.md) — _(no submodules)_ - [s3](./src/s3/s3.md) — _(no submodules)_- [utils](./src/utils/credential-validator.md) — _(no submodules)_ - [credential-validator](./src/utils/credential-validator.md) — _(no submodules)_ ## Installation ```bash bun add @suaveplan/storage-s3 ``` ## Quick Start ```ts import { createS3 } from "@suaveplan/storage-s3"; const storage = createS3({ bucket: "my-bucket", region: "us-east-1", accessKeyId: "AKIAIOSFODNN7EXAMPLE", secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", }); await storage.set("hello.txt", new TextEncoder().encode("hello")); const data = await storage.get("hello.txt"); ``` ## Modules - [`src/s3/s3/s3`](src/s3/s3/s3.md) — `S3` class and `createS3` factory - [`src/types/s3.types`](src/types/s3.types.md) — `S3Options`, `PresignOptions`, `MultipartUploadOptions`, `S3ClientFactory` - [`src/utils/credential-validator`](src/utils/credential-validator.md) — `isAwsS3`, `validateCredentials` - [`src/registry/registry/registry`](src/registry/registry/registry.md) — `registerS3Provider`