← ClaudeAtlas

kora-s3listed

S3 object storage in Kora (AWS S3, MinIO) — declarative @S3.Client (@S3.Get/List/Put/Delete), imperative S3KoraClient, multipart uploads, key templates. Use when storing files, images, or binary data.
kora-projects/kora-skills · ★ 1 · Data & Documents · score 72
Install: claude install-skill kora-projects/kora-skills
# kora-s3 — object storage > **Kora sub-skill — obey the [kora-v1 meta rules](../../SKILL.md) on every task:** **R0** ensure `.kora-agent/` docs+examples are cloned · **R1** read this sub-skill before writing code · **R2** Kora APIs only — no Spring/Micronaut/Quarkus, no invented annotations or config keys · **R3** journal any incorrect Kora usage. Add comments/Javadoc only if asked. Read this first when: - adding S3-compatible storage (AWS S3, MinIO, Ceph) to a Kora app, - choosing between AWS SDK (`s3-client-aws`) and MinIO (`s3-client-minio`) implementations, - writing declarative `@S3.Client` interfaces vs using imperative `S3KoraClient`, - streaming large files via multipart uploads with `S3Body.ofPublisher()`, - modeling S3 key templates with `{argName}` path substitutions, - handling S3-specific responses (`GetObjectResponse`, `ListObjectsV2Response`, presigned URLs). ## Pick an implementation | Aspect | AWS SDK | MinIO | |--------|---------|-------| | Artifact | `ru.tinkoff.kora.experimental:s3-client-aws` | `ru.tinkoff.kora.experimental:s3-client-minio` | | Module | `AwsS3ClientModule` (`ru.tinkoff.kora.s3.client.aws`) | `MinioS3ClientModule` (`ru.tinkoff.kora.s3.client.minio`) | | Native client classes | `S3Client` (sync), `S3AsyncClient` (async), `S3AsyncClient @Tag(MultipartUpload.class)` (batch uploads) | `MinioClient` (sync), `MinioAsyncClient` (async) | | HTTP transport | Any `kora-client` HTTP module (required) | Auto-creates OkHttp; or use the OkHttp modu