All AWS methods are wrapped into a ZIO Task:
type AwsTask[+A] = RIO[R, A]
- Create an async S3 client
def createClient(region: Region, endpoint: String): AwsTask[S3AsyncClient]
- Create S3 bucket with the given name
def createBucket(buck: String): AwsTask[CreateBucketResponse]
- Delete the bucket with the given name
def delBucket(buck: String): AwsTask[DeleteBucketResponse]
- Obtain a list of all buckets owned by the authenticated sender
def listBuckets: AwsTask[ListBucketsResponse]
- List all objects in a Bucket
def listBucketObjects(buck: String, prefix: String): AwsTask[ListObjectsV2Response]
- List all object keys in a Bucket
def listObjectsKeys(buck: String, prefix: String): AwsTask[List[String]]
- Look up for an object. True if present
def lookupObject(buck: String, prefix: String, key: String): AwsTask[Boolean]
- Setup redirection for a single object
def redirectObject(buck: String, prefix: String, key: String, url: String): AwsTask[CopyObjectResponse]
- Setup redirection for all objects with a common prefix
def redirectPack(buck: String, prefix: String, url: String): AwsTask[Unit]
- Copy object
def copyObject(buck: String, dstPrefix: String, srcKey: String, dstKey: String)
: AwsTask[CopyObjectResponse]
- Put a file with a key into a Bucket
def putObject(buck: String, key: String, file: String): AwsTask[PutObjectResponse]
- Get a file with a key from a Bucket
def getObject(buck: String, key: String, file: String): AwsTask[GetObjectResponse]
- Delete object by key from a Bucket
def delObject(buck: String, key: String): AwsTask[DeleteObjectResponse]
- Delete all objects in the bucket which share the same prefix
def delAllObjects(buck: String, prefix: String): AwsTask[Unit]
- Get current ACL settings
def getObjectAcl(buck: String, key: String): AwsTask[GetObjectAclResponse]
- Put new ACL settings
def putObjectAcl(buck: String, key: String, owner: Owner, grants: JList[Grant])
: AwsTask[PutObjectAclResponse]
- Block all objects with ACL remove permission for a group of objects under the common prefix
def blockPack(buck: String, prefix: String): AwsTask[Unit]
- Unblock all objects with ACL remove permission for a group of objects under the common path
def unblockPack(buck: String, prefix: String): AwsTask[Unit]
- Get ACL for each object in a path
def getPackAcl(buck: String, prefix: String): AwsTask[List[GetObjectAclResponse]]
- Put ACL for each object in a path
def putPackAcl(buck: String, prefix: String, block: Boolean): AwsTask[List[PutObjectAclResponse]]