Class OracleCloudStorageOperations

java.lang.Object
io.micronaut.objectstorage.oraclecloud.OracleCloudStorageOperations
All Implemented Interfaces:
ObjectStorageOperations<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>

@EachBean(OracleCloudStorageConfiguration.class) @Requires(condition=ToggeableCondition.class) @Requires(beans=OracleCloudStorageConfiguration.class) public class OracleCloudStorageOperations extends Object implements ObjectStorageOperations<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
Oracle Cloud implementation of ObjectStorageOperations.
Since:
1.0
Author:
Pavol Gressa
  • Constructor Details

    • OracleCloudStorageOperations

      public OracleCloudStorageOperations(@Parameter OracleCloudStorageConfiguration configuration, com.oracle.bmc.objectstorage.ObjectStorage client, com.oracle.bmc.auth.RegionProvider regionProvider)
      Parameters:
      configuration - Oracle Cloud Storage Configuration
      client - Object Storage Client
      regionProvider - Region provider, to determine the current region
  • Method Details

    • upload

      public @NonNull UploadResponse<com.oracle.bmc.objectstorage.responses.PutObjectResponse> upload(@NonNull UploadRequest request)
      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<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Parameters:
      request - the upload request
      Returns:
      the upload response
    • upload

      public @NonNull UploadResponse<com.oracle.bmc.objectstorage.responses.PutObjectResponse> upload(@NonNull UploadRequest request, @NonNull Consumer<com.oracle.bmc.objectstorage.requests.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<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Parameters:
      request - the upload request
      requestConsumer - Upload request builder consumer
      Returns:
      the upload response
    • retrieve

      public @NonNull Optional<OracleCloudStorageEntry> retrieve(@NonNull String key)
      Description copied from interface: ObjectStorageOperations
      Gets the object from object storage.
      Specified by:
      retrieve in interface ObjectStorageOperations<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.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

      public @NonNull com.oracle.bmc.objectstorage.responses.DeleteObjectResponse delete(@NonNull String key)
      Description copied from interface: ObjectStorageOperations
      Deletes an object from the object storage.
      Specified by:
      delete in interface ObjectStorageOperations<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Parameters:
      key - object path in the format /foo/bar/file
      Returns:
      Cloud vendor-specific delete response.
    • exists

      public boolean exists(@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<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Parameters:
      key - object path in the format /foo/bar/file
      Returns:
      true if the entry exists, false otherwise.
    • listObjects

      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<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Returns:
      a list of keys (paths) of the existing objects, if any, or an empty list otherwise.
    • listObjects

      public @NonNull ListObjectsResponse listObjects(@NonNull ListObjectsRequest request)
      Description copied from interface: ObjectStorageOperations
      Lists a page of objects that exist in the object storage.
      Specified by:
      listObjects in interface ObjectStorageOperations<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Parameters:
      request - the paginated listing request
      Returns:
      the ordered keys in the current page and an optional continuation token for the next page
    • copy

      public void copy(@NonNull String sourceKey, @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<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Parameters:
      sourceKey - the key of the source object
      destinationKey - the key of the destination object
    • createPresignedUpload

      public @NonNull Optional<PresignedUpload> createPresignedUpload(@NonNull CreatePresignedUploadRequest request)
      Description copied from interface: ObjectStorageOperations
      Creates a pre-signed upload request for a single object key.
      Specified by:
      createPresignedUpload in interface ObjectStorageOperations<com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder, com.oracle.bmc.objectstorage.responses.PutObjectResponse, com.oracle.bmc.objectstorage.responses.DeleteObjectResponse>
      Parameters:
      request - the pre-signed upload request parameters
      Returns:
      the signed upload request, if the provider supports it in the current configuration
    • getRequestBuilder

      protected @NonNull com.oracle.bmc.objectstorage.requests.PutObjectRequest.Builder getRequestBuilder(@NonNull UploadRequest request)
      Parameters:
      request - Upload Request
      Returns:
      The Put Object Request Builder
    • getPreauthenticatedRequestName

      protected @NonNull String getPreauthenticatedRequestName(@NonNull CreatePresignedUploadRequest request)
      Parameters:
      request - the pre-signed upload request
      Returns:
      the Oracle Cloud pre-authenticated request name
      Since:
      3.0.0
    • getPreauthenticatedRequestUri

      protected @NonNull URI getPreauthenticatedRequestUri(@NonNull com.oracle.bmc.objectstorage.model.PreauthenticatedRequest preauthenticatedRequest)
      Parameters:
      preauthenticatedRequest - the Oracle Cloud pre-authenticated request
      Returns:
      the absolute request URI that clients should replay
      Since:
      3.0.0
    • toPortableHeaders

      protected @NonNull Map<String, List<String>> toPortableHeaders(@NonNull CreatePresignedUploadRequest request)
      Parameters:
      request - the pre-signed upload request
      Returns:
      portable headers that callers should preserve on upload
      Since:
      3.0.0