S3KotlinClient

class S3KotlinClient(client: S3Client, val bucketConfig: S3BucketConfiguration) : S3Client

The primary and recommended S3 client implementation -- kotlin-friendly with suspend functions. However, there's a bug that can cause hard failures under high-concurrency. (Partial workaround in place https://github.com/awslabs/aws-sdk-kotlin/issues/1214#issuecomment-2464831817).

Constructors

Link copied to clipboard
constructor(client: S3Client, bucketConfig: S3BucketConfiguration)

Properties

Link copied to clipboard

Functions

Link copied to clipboard
open suspend override fun delete(remoteObject: S3Object)
open suspend override fun delete(key: String)
open suspend override fun delete(keys: Set<String>)
Link copied to clipboard
open suspend override fun <R> get(key: String, block: (InputStream) -> R): R
Link copied to clipboard
open suspend override fun getMetadata(key: String): Map<String, String>
Link copied to clipboard
open suspend override fun list(prefix: String): Flow<S3Object>
Link copied to clipboard
open suspend override fun move(remoteObject: S3Object, toKey: String): S3Object
open suspend override fun move(key: String, toKey: String): S3Object
Link copied to clipboard
open suspend override fun put(key: String, bytes: ByteArray): S3Object
Link copied to clipboard
open suspend override fun startStreamingUpload(key: String, metadata: Map<String, String>): StreamingUpload<S3Object>