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 Details

    • AwsS3Operations

      public AwsS3Operations(@Parameter AwsS3Configuration configuration, software.amazon.awssdk.services.s3.S3Client s3Client, InputStreamMapper inputStreamMapper)
      Parameters:
      configuration - AWS S3 Configuration
      s3Client - S3 Client
      inputStreamMapper - 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: ObjectStorageOperations
      Uploads an object to the object storage. If there is an existing entry, it will be updated.
      Specified by:
      upload in interface ObjectStorageOperations<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: ObjectStorageOperations
      Uploads an object to the object storage. If there is an existing entry, it will be updated.
      Specified by:
      upload in interface ObjectStorageOperations<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 request
      requestConsumer - Upload request builder consumer
      Returns:
      the upload response
    • retrieve

      @NonNull public @NonNull Optional<AwsS3ObjectStorageEntry> retrieve(@NonNull @NonNull String key)
      Description copied from interface: ObjectStorageOperations
      Gets the object from object storage.
      Specified by:
      retrieve in interface ObjectStorageOperations<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: ObjectStorageOperations
      Deletes an object from the object storage.
      Specified by:
      delete in interface ObjectStorageOperations<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

      public boolean exists(@NonNull @NonNull String key)
      Description copied from interface: ObjectStorageOperations
      Checks whether an entry with the given key exists in the object storage.
      Specified by:
      exists in interface ObjectStorageOperations<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

      @NonNull public @NonNull Set<String> listObjects()
      Description copied from interface: ObjectStorageOperations
      Lists the objects that exist in the object storage.
      Specified by:
      listObjects in interface ObjectStorageOperations<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

      public void copy(@NonNull @NonNull String sourceKey, @NonNull @NonNull String destinationKey)
      Description copied from interface: ObjectStorageOperations
      Copies an object stored at sourceKey to destinationKey, within the same object storage (bucket/container). If the destination exists, it will be overwritten.
      Specified by:
      copy in interface ObjectStorageOperations<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 object
      destinationKey - 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.Builder from a Micronaut's UploadRequest.
    • getRequestBody

      @NonNull protected @NonNull software.amazon.awssdk.core.sync.RequestBody getRequestBody(@NonNull @NonNull UploadRequest uploadRequest)
      Parameters:
      uploadRequest - the upload request
      Returns:
      An AWS' RequestBody from a Micronaut's UploadRequest.