Package io.micronaut.objectstorage.aws
Class AwsS3Operations
java.lang.Object
io.micronaut.objectstorage.aws.AwsS3Operations
- All Implemented Interfaces:
ObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse>
@EachBean(AwsS3Configuration.class)
@Requires(condition=ToggeableCondition.class) @Requires(beans=AwsS3Configuration.class)
public class AwsS3Operations
extends Object
implements ObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse,software.amazon.awssdk.services.s3.model.DeleteObjectResponse>
AWS implementation of
ObjectStorageOperations.- Since:
- 1.0
- Author:
- Pavol Gressa
-
Constructor Summary
ConstructorsConstructorDescriptionAwsS3Operations(AwsS3Configuration configuration, software.amazon.awssdk.services.s3.S3Client s3Client, InputStreamMapper inputStreamMapper) -
Method Summary
Modifier and TypeMethodDescriptionvoidCopies an object stored atsourceKeytodestinationKey, within the same object storage (bucket/container).@NonNull software.amazon.awssdk.services.s3.model.DeleteObjectResponseDeletes an object from the object storage.booleanChecks whether an entry with the given key exists in the object storage.protected @NonNull software.amazon.awssdk.core.sync.RequestBodygetRequestBody(@NonNull UploadRequest uploadRequest) protected software.amazon.awssdk.services.s3.model.PutObjectRequest.BuildergetRequestBuilder(@NonNull UploadRequest request) Lists the objects that exist in the object storage.@NonNull Optional<AwsS3ObjectStorageEntry>Gets the object from object storage.@NonNull UploadResponse<software.amazon.awssdk.services.s3.model.PutObjectResponse>upload(@NonNull UploadRequest uploadRequest) Uploads an object to the object storage.@NonNull UploadResponse<software.amazon.awssdk.services.s3.model.PutObjectResponse>upload(@NonNull UploadRequest request, @NonNull Consumer<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder> requestConsumer) Uploads an object to the object storage.
-
Constructor Details
-
AwsS3Operations
public AwsS3Operations(@Parameter AwsS3Configuration configuration, software.amazon.awssdk.services.s3.S3Client s3Client, InputStreamMapper inputStreamMapper) - Parameters:
configuration- AWS S3 Configurations3Client- S3 ClientinputStreamMapper- InputStream Mapper
-
-
Method Details
-
upload
@NonNull public @NonNull UploadResponse<software.amazon.awssdk.services.s3.model.PutObjectResponse> upload(@NonNull @NonNull UploadRequest uploadRequest) Description copied from interface:ObjectStorageOperationsUploads an object to the object storage. If there is an existing entry, it will be updated.- Specified by:
uploadin interfaceObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse> - Parameters:
uploadRequest- the upload request- Returns:
- the upload response
-
upload
@NonNull public @NonNull UploadResponse<software.amazon.awssdk.services.s3.model.PutObjectResponse> upload(@NonNull @NonNull UploadRequest request, @NonNull @NonNull Consumer<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder> requestConsumer) Description copied from interface:ObjectStorageOperationsUploads an object to the object storage. If there is an existing entry, it will be updated.- Specified by:
uploadin interfaceObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse> - Parameters:
request- the upload requestrequestConsumer- Upload request builder consumer- Returns:
- the upload response
-
retrieve
Description copied from interface:ObjectStorageOperationsGets the object from object storage.- Specified by:
retrievein interfaceObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse> - Parameters:
key- the object path in the format/foo/bar/file- Returns:
- the object, or empty optional if the object does not exist
-
delete
@NonNull public @NonNull software.amazon.awssdk.services.s3.model.DeleteObjectResponse delete(@NonNull @NonNull String key) Description copied from interface:ObjectStorageOperationsDeletes an object from the object storage.- Specified by:
deletein interfaceObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse> - Parameters:
key- object path in the format/foo/bar/file- Returns:
- Cloud vendor-specific delete response.
-
exists
Description copied from interface:ObjectStorageOperationsChecks whether an entry with the given key exists in the object storage.- Specified by:
existsin interfaceObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse> - Parameters:
key- object path in the format/foo/bar/file- Returns:
- true if the entry exists, false otherwise.
-
listObjects
Description copied from interface:ObjectStorageOperationsLists the objects that exist in the object storage.- Specified by:
listObjectsin interfaceObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse> - Returns:
- a list of keys (paths) of the existing objects, if any, or an empty list otherwise.
-
copy
Description copied from interface:ObjectStorageOperationsCopies an object stored atsourceKeytodestinationKey, within the same object storage (bucket/container). If the destination exists, it will be overwritten.- Specified by:
copyin interfaceObjectStorageOperations<software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder,software.amazon.awssdk.services.s3.model.PutObjectResponse, software.amazon.awssdk.services.s3.model.DeleteObjectResponse> - Parameters:
sourceKey- the key of the source objectdestinationKey- the key of the destination object
-
getRequestBuilder
@NonNull protected software.amazon.awssdk.services.s3.model.PutObjectRequest.Builder getRequestBuilder(@NonNull @NonNull UploadRequest request) - Parameters:
request- the upload request- Returns:
- An AWS'
PutObjectRequest.Builderfrom a Micronaut'sUploadRequest.
-
getRequestBody
@NonNull protected @NonNull software.amazon.awssdk.core.sync.RequestBody getRequestBody(@NonNull @NonNull UploadRequest uploadRequest) - Parameters:
uploadRequest- the upload request- Returns:
- An AWS'
RequestBodyfrom a Micronaut'sUploadRequest.
-