Package io.minio
Class MinioAsyncClient
java.lang.Object
io.minio.BaseS3Client
io.minio.MinioAsyncClient
- All Implemented Interfaces:
AutoCloseable
Simple Storage Service (aka S3) client to perform bucket and object operations asynchronously.
Bucket operations
- Create, list and delete buckets.
- Put, get and delete bucket lifecycle configuration.
- Put, get and delete bucket policy configuration.
- Put, get and delete bucket encryption configuration.
- Put and get bucket default retention configuration.
- Put and get bucket notification configuration.
- Enable and disable bucket versioning.
Object operations
- Put, get, delete and list objects.
- Create objects by combining existing objects.
- Put and get object retention and legal hold.
- Filter object content by SQL statement.
If access/secret keys are provided, all S3 operation requests are signed using AWS Signature Version 4; else they are performed anonymously.
Examples on using this library are available here.
Use MinioAsyncClient.builder() to create S3 client.
// Create client with anonymous access.
MinioAsyncClient minioAsyncClient =
MinioAsyncClient.builder().endpoint("https://play.min.io").build();
// Create client with credentials.
MinioAsyncClient minioAsyncClient =
MinioAsyncClient.builder()
.endpoint("https://play.min.io")
.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
.build();
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classArgument builder ofMinioAsyncClient.protected static classNotification result records representation. -
Field Summary
Fields inherited from class io.minio.BaseS3Client
baseUrl, closeHttpClient, httpClient, MAX_BUCKET_POLICY_SIZE, NO_SUCH_BUCKET, NO_SUCH_BUCKET_MESSAGE, NO_SUCH_BUCKET_POLICY, NO_SUCH_OBJECT_LOCK_CONFIGURATION, OBJECT_MAPPER, provider, RANDOM, regionCache, SERVER_SIDE_ENCRYPTION_CONFIGURATION_NOT_FOUND_ERROR, userAgent -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionappendObject(AppendObjectArgs args) Appends from a file, stream or data to existing object in a bucket.bucketExists(BucketExistsArgs args) Checks if a bucket exists.static MinioAsyncClient.Builderbuilder()Creates newMinioAsyncClient.Builder.protected CompletableFuture<Integer>calculatePartCount(List<SourceObject> sources) Calculates part count for given list ofSourceObject.Creates an object by combining data from different source objects using server-side copy.copyObject(CopyObjectArgs args) Creates an object by server-side copying data from another object.Deletes CORS configuration of a bucket.Deletes encryption configuration of a bucket.Deletes lifecycle configuration of a bucket.Deletes notification configuration of a bucket.Deletes bucket policy configuration to a bucket.Deletes bucket replication configuration from a bucket.Deletes tags of a bucket.Deletes default object retention in a bucket.Deletes tags of an object.Disables legal hold on an object.Downloads data of a SSE-C encrypted object to file.Enables legal hold on an object.Gets CORS configuration of a bucket.Gets encryption configuration of a bucket.Gets lifecycle configuration of a bucket.Gets notification configuration of a bucket.Gets bucket policy configuration of a bucket.Gets bucket replication configuration of a bucket.Gets tags of a bucket.Gets versioning configuration of a bucket.getObject(GetObjectArgs args) Gets data from offset to length of a SSE-C encrypted object asynchronously.getObjectAcl(GetObjectAclArgs args) Gets access control policy of an object.Gets attributes of an object.Gets default object retention in a bucket.Gets retention configuration of an object.Gets tags of an object.Gets presigned URL of an object for HTTP method, expiry time and custom request parameters.getPresignedPostFormData(PostPolicy policy) Gets form-data ofPostPolicyof an object to upload its data using POST method.Returns true if legal hold is enabled on an object.Lists bucket information of all buckets.listBuckets(ListBucketsArgs args) Lists bucket information of all buckets.Listens events of object prefix and suffix of a bucket.listObjects(ListObjectsArgs args) Lists objects information optionally with versions of a bucket.makeBucket(MakeBucketArgs args) Creates a bucket with region and object lock.Execute list objects v1.Execute list objects v2.Execute list object versions.promptObject(PromptObjectArgs args) Performs language model inference with the prompt and referenced object as context.putObject(PutObjectArgs args) Uploads data from a stream to an object.Uploads multiple objects with same content from single stream with optional metadata and tags.removeBucket(RemoveBucketArgs args) Removes an empty bucket using argumentsremoveObject(RemoveObjectArgs args) Removes an object.Removes multiple objects lazily.Restores an object asynchronously.Selects content of an object by SQL expression.Sets CORS configuration to a bucket.Sets encryption configuration of a bucket.Sets lifecycle configuration to a bucket.Sets notification configuration to a bucket.Sets bucket policy configuration to a bucket.Sets bucket replication configuration to a bucket.Sets tags to a bucket.Sets versioning configuration of a bucket.Sets default object retention in a bucket.Sets retention configuration to an object.Sets tags to an object.statObject(StatObjectArgs args) Gets information of an object asynchronously.voidThrows encapsulated exception wrapped byCompletionException.uploadObject(UploadObjectArgs args) Uploads data from a file to an object.Uploads multiple objects in a single put call.Methods inherited from class io.minio.BaseS3Client
abortMultipartUpload, checkArgs, close, completeMultipartUpload, createBucket, createMultipartUpload, deleteObjects, disableDualStackEndpoint, disableVirtualStyleEndpoint, enableDualStackEndpoint, enableVirtualStyleEndpoint, executeAsync, executeAsync, executeDeleteAsync, executeGetAsync, executeHeadAsync, executePostAsync, executePutAsync, getBucketLocation, getRegion, headBucket, headObject, ignoreCertCheck, listBucketsAPI, listMultipartUploads, listObjectsV1, listObjectsV2, listObjectVersions, listParts, newCompleteableFuture, putObject, setAppInfo, setAwsS3Prefix, setRetry, setTimeout, supplyAsync, traceOff, traceOn, uploadPart, uploadPartCopy
-
Constructor Details
-
MinioAsyncClient
-
-
Method Details
-
builder
Creates newMinioAsyncClient.Builder. -
statObject
Gets information of an object asynchronously.Example:
// Get information of an object. CompletableFuture<StatObjectResponse> future = minioAsyncClient.statObject( StatObjectArgs.builder().bucket("my-bucketname").object("my-objectname").build()); // Get information of SSE-C encrypted object. CompletableFuture<StatObjectResponse> future = minioAsyncClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .ssec(ssec) .build()); // Get information of a versioned object. CompletableFuture<StatObjectResponse> future = minioAsyncClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("version-id") .build()); // Get information of a SSE-C encrypted versioned object. CompletableFuture<StatObjectResponse> future = minioAsyncClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("version-id") .ssec(ssec) .build());- Parameters:
args-StatObjectArgsobject.- Returns:
CompletableFuture<StatObjectResponse> object.- See Also:
-
getObject
Gets data from offset to length of a SSE-C encrypted object asynchronously.Example:
CompletableFuture<GetObjectResponse> future = minioAsyncClient.getObject( GetObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .offset(offset) .length(len) .ssec(ssec) .build()- Parameters:
args- Object ofGetObjectArgs- Returns:
CompletableFuture<GetObjectResponse> object.- See Also:
-
downloadObject
Downloads data of a SSE-C encrypted object to file.Example:
CompletableFuture<Void> future = minioAsyncClient.downloadObject( DownloadObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .ssec(ssec) .filename("my-filename") .build());- Parameters:
args- Object ofDownloadObjectArgs- Returns:
CompletableFuture<Void> object.
-
copyObject
Creates an object by server-side copying data from another object.Example:
// Create object "my-objectname" in bucket "my-bucketname" by copying from object // "my-objectname" in bucket "my-source-bucketname". CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( SourceObject.builder() .bucket("my-source-bucketname") .object("my-objectname") .build()) .build()); // Create object "my-objectname" in bucket "my-bucketname" by copying from object // "my-source-objectname" in bucket "my-source-bucketname". CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( SourceObject.builder() .bucket("my-source-bucketname") .object("my-source-objectname") .build()) .build()); // Create object "my-objectname" in bucket "my-bucketname" with SSE-KMS server-side // encryption by copying from object "my-objectname" in bucket "my-source-bucketname". CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( SourceObject.builder() .bucket("my-source-bucketname") .object("my-objectname") .build()) .sse(sseKms) // Replace with actual key. .build()); // Create object "my-objectname" in bucket "my-bucketname" with SSE-S3 server-side // encryption by copying from object "my-objectname" in bucket "my-source-bucketname". CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( SourceObject.builder() .bucket("my-source-bucketname") .object("my-objectname") .build()) .sse(sseS3) // Replace with actual key. .build()); // Create object "my-objectname" in bucket "my-bucketname" with SSE-C server-side encryption // by copying from object "my-objectname" in bucket "my-source-bucketname". CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( SourceObject.builder() .bucket("my-source-bucketname") .object("my-objectname") .build()) .sse(ssec) // Replace with actual key. .build()); // Create object "my-objectname" in bucket "my-bucketname" by copying from SSE-C encrypted // object "my-source-objectname" in bucket "my-source-bucketname". CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( SourceObject.builder() .bucket("my-source-bucketname") .object("my-source-objectname") .ssec(ssec) // Replace with actual key. .build()) .build()); // Create object "my-objectname" in bucket "my-bucketname" with custom headers conditionally // by copying from object "my-objectname" in bucket "my-source-bucketname". CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( SourceObject.builder() .bucket("my-source-bucketname") .object("my-objectname") .matchETag(etag) // Replace with actual etag. .build()) .headers(headers) // Replace with actual headers. .build());- Overrides:
copyObjectin classBaseS3Client- Parameters:
args-CopyObjectArgsobject.- Returns:
CompletableFuture<ObjectWriteResponse> object.
-
calculatePartCount
Calculates part count for given list ofSourceObject. -
composeObject
Creates an object by combining data from different source objects using server-side copy.Example:
List<SourceObject> sourceObjectList = new ArrayList<SourceObject>(); sourceObjectList.add( SourceObject.builder().bucket("my-job-bucket").object("my-objectname-part-one").build()); sourceObjectList.add( SourceObject.builder().bucket("my-job-bucket").object("my-objectname-part-two").build()); sourceObjectList.add( SourceObject.builder().bucket("my-job-bucket").object("my-objectname-part-three").build()); // Create my-bucketname/my-objectname by combining source object list. CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.composeObject( ComposeObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .sources(sourceObjectList) .build()); // Create my-bucketname/my-objectname with user metadata by combining source object // list. Map<String, String> userMetadata = new HashMap<>(); userMetadata.put("My-Project", "Project One"); CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.composeObject( ComposeObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .sources(sourceObjectList) .userMetadata(userMetadata) .build()); // Create my-bucketname/my-objectname with user metadata and server-side encryption // by combining source object list. CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.composeObject( ComposeObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .sources(sourceObjectList) .userMetadata(userMetadata) .ssec(sse) .build());- Parameters:
args-ComposeObjectArgsobject.- Returns:
CompletableFuture<ObjectWriteResponse> object.
-
getPresignedObjectUrl
Gets presigned URL of an object for HTTP method, expiry time and custom request parameters.Example:
// Get presigned URL string to delete 'my-objectname' in 'my-bucketname' and its life time // is one day. String url = minioAsyncClient.getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() .method(Http.Method.DELETE) .bucket("my-bucketname") .object("my-objectname") .expiry(24 * 60 * 60) .build()); System.out.println(url); // Get presigned URL string to upload 'my-objectname' in 'my-bucketname' // with response-content-type as application/json and life time as one day. Map<String, String> reqParams = new HashMap<String, String>(); reqParams.put("response-content-type", "application/json"); String url = minioAsyncClient.getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() .method(Http.Method.PUT) .bucket("my-bucketname") .object("my-objectname") .expiry(1, TimeUnit.DAYS) .extraQueryParams(reqParams) .build()); System.out.println(url); // Get presigned URL string to download 'my-objectname' in 'my-bucketname' and its life time // is 2 hours. String url = minioAsyncClient.getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() .method(Http.Method.GET) .bucket("my-bucketname") .object("my-objectname") .expiry(2, TimeUnit.HOURS) .build()); System.out.println(url);- Parameters:
args-GetPresignedObjectUrlArgsobject.- Returns:
- String - URL string.
- Throws:
MinioException- thrown to indicate SDK exception.
-
getPresignedPostFormData
Gets form-data ofPostPolicyof an object to upload its data using POST method.Example:
// Create new post policy for 'my-bucketname' with 7 days expiry from now. PostPolicy policy = new PostPolicy("my-bucketname", ZonedDateTime.now().plusDays(7)); // Add condition that 'key' (object name) equals to 'my-objectname'. policy.addEqualsCondition("key", "my-objectname"); // Add condition that 'Content-Type' starts with 'image/'. policy.addStartsWithCondition("Content-Type", "image/"); // Add condition that 'content-length-range' is between 64kiB to 10MiB. policy.addContentLengthRangeCondition(64 * 1024, 10 * 1024 * 1024); Map<String, String> formData = minioAsyncClient.getPresignedPostFormData(policy); // Upload an image using POST object with form-data. MultipartBody.Builder multipartBuilder = new MultipartBody.Builder(); multipartBuilder.setType(MultipartBody.FORM); for (Map.Entry<String, String> entry : formData.entrySet()) { multipartBuilder.addFormDataPart(entry.getKey(), entry.getValue()); } multipartBuilder.addFormDataPart("key", "my-objectname"); multipartBuilder.addFormDataPart("Content-Type", "image/png"); // "file" must be added at last. multipartBuilder.addFormDataPart( "file", "my-objectname", RequestBody.create(new File("Pictures/avatar.png"), null)); Request request = new Request.Builder() .url("https://play.min.io/my-bucketname") .post(multipartBuilder.build()) .build(); OkHttpClient httpClient = new OkHttpClient().newBuilder().build(); Response response = httpClient.newCall(request).execute(); if (response.isSuccessful()) { System.out.println("Pictures/avatar.png is uploaded successfully using POST object"); } else { System.out.println("Failed to upload Pictures/avatar.png"); }- Parameters:
policy- Post policy of an object.- Returns:
Map<String, String>- Contains form-data to upload an object using POST method.- Throws:
MinioException- thrown to indicate SDK exception.- See Also:
-
removeObject
Removes an object.Example:
// Remove object. CompletableFuture<Void> future = minioAsyncClient.removeObject( RemoveObjectArgs.builder().bucket("my-bucketname").object("my-objectname").build()); // Remove versioned object. CompletableFuture<Void> future = minioAsyncClient.removeObject( RemoveObjectArgs.builder() .bucket("my-bucketname") .object("my-versioned-objectname") .versionId("my-versionid") .build()); // Remove versioned object bypassing Governance mode. CompletableFuture<Void> future = minioAsyncClient.removeObject( RemoveObjectArgs.builder() .bucket("my-bucketname") .object("my-versioned-objectname") .versionId("my-versionid") .bypassRetentionMode(true) .build());- Parameters:
args-RemoveObjectArgsobject.- Returns:
CompletableFuture<Void> object.
-
removeObjects
Removes multiple objects lazily. Its required to iterate the returned Iterable to perform removal.Example:
List<DeleteObject> objects = new ArrayList<>(); objects.add(new DeleteObject("my-objectname1")); objects.add(new DeleteObject("my-objectname2")); objects.add(new DeleteObject("my-objectname3")); Iterable<Result<DeleteResult.Error>> results = minioAsyncClient.removeObjects( RemoveObjectsArgs.builder().bucket("my-bucketname").objects(objects).build()); for (Result<DeleteResult.Error> result : results) { DeleteResult.Error error = result.get(); System.out.println( "Error in deleting object " + error.objectName() + "; " + error.message()); }- Parameters:
args-RemoveObjectsArgsobject.- Returns:
Iterable<Result<DeleteResult.Error>>- Lazy iterator contains object removal status.
-
restoreObject
Restores an object asynchronously.Example:
// Restore object. CompletableFuture<Void> future = minioAsyncClient.restoreObject( RestoreObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .request(new RestoreRequest(null, null, null, null, null, null)) .build()); // Restore versioned object. CompletableFuture<Void> future = minioAsyncClient.restoreObject( RestoreObjectArgs.builder() .bucket("my-bucketname") .object("my-versioned-objectname") .versionId("my-versionid") .request(new RestoreRequest(null, null, null, null, null, null)) .build());- Parameters:
args-RestoreObjectArgsobject.- Returns:
CompletableFuture<Void> object.
-
listObjects
Lists objects information optionally with versions of a bucket. Supports both the versions 1 and 2 of the S3 API. By default, the version 2 API is used.
Version 1 can be used by passing the optional argumentuseVersion1astrue.Example:
// Lists objects information. Iterable<Result<Item>> results = minioAsyncClient.listObjects( ListObjectsArgs.builder().bucket("my-bucketname").build()); // Lists objects information recursively. Iterable<Result<Item>> results = minioAsyncClient.listObjects( ListObjectsArgs.builder().bucket("my-bucketname").recursive(true).build()); // Lists maximum 100 objects information whose names starts with 'E' and after // 'ExampleGuide.pdf'. Iterable<Result<Item>> results = minioAsyncClient.listObjects( ListObjectsArgs.builder() .bucket("my-bucketname") .startAfter("ExampleGuide.pdf") .prefix("E") .maxKeys(100) .build()); // Lists maximum 100 objects information with version whose names starts with 'E' and after // 'ExampleGuide.pdf'. Iterable<Result<Item>> results = minioAsyncClient.listObjects( ListObjectsArgs.builder() .bucket("my-bucketname") .startAfter("ExampleGuide.pdf") .prefix("E") .maxKeys(100) .includeVersions(true) .build());- Parameters:
args- Instance ofListObjectsArgsbuilt using the builder- Returns:
Iterable<Result<Item>>- Lazy iterator contains object information.
-
listBuckets
Lists bucket information of all buckets.Example:
CompletableFuture<List<ListAllMyBucketsResult.Bucket>> future = minioAsyncClient.listBuckets();- Returns:
CompletableFuture<List<ListAllMyBucketsResult.Bucket>> object.
-
listBuckets
Lists bucket information of all buckets.Example:
Iterable<Result<ListAllMyBucketsResult.Bucket>> results = minioAsyncClient.listBuckets(ListBucketsArgs.builder().build()); for (Result<ListAllMyBucketsResult.Bucket> result : results) { Bucket bucket = result.get(); System.out.println(String.format("Bucket: %s, Region: %s, CreationDate: %s", bucket.name(), bucket.bucketRegion(), bucket.creationDate())); }- Returns:
Iterable<List<ListAllMyBucketsResult.Bucket>> object.
-
bucketExists
Checks if a bucket exists.Example:
CompletableFuture<Boolean> future = minioAsyncClient.bucketExists(BucketExistsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-BucketExistsArgsobject.- Returns:
CompletableFuture<Boolean> object.
-
makeBucket
Creates a bucket with region and object lock.Example:
// Create bucket with default region. CompletableFuture<Void> future = minioAsyncClient.makeBucket( MakeBucketArgs.builder() .bucket("my-bucketname") .build()); // Create bucket with specific region. CompletableFuture<Void> future = minioAsyncClient.makeBucket( MakeBucketArgs.builder() .bucket("my-bucketname") .region("us-west-1") .build()); // Create object-lock enabled bucket with specific region. CompletableFuture<Void> future = minioAsyncClient.makeBucket( MakeBucketArgs.builder() .bucket("my-bucketname") .region("us-west-1") .objectLock(true) .build());- Parameters:
args- Object with bucket name, region and lock functionality- Returns:
CompletableFuture<GenericResponse> object.
-
setBucketVersioning
Sets versioning configuration of a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.setBucketVersioning( SetBucketVersioningArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketVersioningArgsobject.- Returns:
CompletableFuture<Void> object.
-
getBucketVersioning
Gets versioning configuration of a bucket.Example:
CompletableFuture<VersioningConfiguration> future = minioAsyncClient.getBucketVersioning( GetBucketVersioningArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketVersioningArgsobject.- Returns:
CompletableFuture<VersioningConfiguration> object.
-
setObjectLockConfiguration
Sets default object retention in a bucket.Example:
ObjectLockConfiguration config = new ObjectLockConfiguration( RetentionMode.COMPLIANCE, new RetentionDurationDays(100)); CompletableFuture<Void> future = minioAsyncClient.setObjectLockConfiguration( SetObjectLockConfigurationArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetObjectLockConfigurationArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteObjectLockConfiguration
public CompletableFuture<Void> deleteObjectLockConfiguration(DeleteObjectLockConfigurationArgs args) Deletes default object retention in a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteObjectLockConfiguration( DeleteObjectLockConfigurationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteObjectLockConfigurationArgsobject.- Returns:
CompletableFuture<Void> object.
-
getObjectLockConfiguration
public CompletableFuture<ObjectLockConfiguration> getObjectLockConfiguration(GetObjectLockConfigurationArgs args) Gets default object retention in a bucket.Example:
CompletableFuture<ObjectLockConfiguration> future = minioAsyncClient.getObjectLockConfiguration( GetObjectLockConfigurationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetObjectLockConfigurationArgsobject.- Returns:
CompletableFuture<ObjectLockConfiguration> object.
-
setObjectRetention
Sets retention configuration to an object.Example:
Retention retention = new Retention( RetentionMode.COMPLIANCE, ZonedDateTime.now().plusYears(1)); CompletableFuture<Void> future = minioAsyncClient.setObjectRetention( SetObjectRetentionArgs.builder() .bucket("my-bucketname") .object("my-objectname") .config(config) .bypassGovernanceMode(true) .build());- Parameters:
args-SetObjectRetentionArgsobject.- Returns:
CompletableFuture<Void> object.
-
getObjectRetention
Gets retention configuration of an object.Example:
CompletableFuture<Retention> future = minioAsyncClient.getObjectRetention(GetObjectRetentionArgs.builder() .bucket(bucketName) .object(objectName) .versionId(versionId) .build());- Parameters:
args-GetObjectRetentionArgsobject.- Returns:
CompletableFuture<Retention> object.
-
enableObjectLegalHold
Enables legal hold on an object.Example:
CompletableFuture<Void> future = minioAsyncClient.enableObjectLegalHold( EnableObjectLegalHoldArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build());- Parameters:
args-EnableObjectLegalHoldArgsobject.- Returns:
CompletableFuture<Void> object.
-
disableObjectLegalHold
Disables legal hold on an object.Example:
CompletableFuture<Void> future = minioAsyncClient.disableObjectLegalHold( DisableObjectLegalHoldArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build());- Parameters:
args-DisableObjectLegalHoldArgsobject.- Returns:
CompletableFuture<Void> object.
-
isObjectLegalHoldEnabled
Returns true if legal hold is enabled on an object.Example:
CompletableFuture<Boolean> future = s3Client.isObjectLegalHoldEnabled( IsObjectLegalHoldEnabledArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build());- Parameters:
args-IsObjectLegalHoldEnabledArgsobject.- Returns:
CompletableFuture<Boolean> object.
-
removeBucket
Removes an empty bucket using argumentsExample:
CompletableFuture<Void> future = minioAsyncClient.removeBucket(RemoveBucketArgs.builder().bucket("my-bucketname").build());- Parameters:
args-RemoveBucketArgsbucket.- Returns:
CompletableFuture<Void> object.
-
putObject
Uploads data from a stream to an object.Example:
// Upload known sized input stream. CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.putObject( PutObjectArgs.builder().bucket("my-bucketname").object("my-objectname").stream( inputStream, size, -1) .contentType("video/mp4") .build()); // Upload unknown sized input stream. CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.putObject( PutObjectArgs.builder().bucket("my-bucketname").object("my-objectname").stream( inputStream, -1, 10485760) .contentType("video/mp4") .build()); // Create object ends with '/' (also called as folder or directory). CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.putObject( PutObjectArgs.builder().bucket("my-bucketname").object("path/to/").stream( new ByteArrayInputStream(new byte[] {}), 0, -1) .build()); // Upload input stream with headers and user metadata. Map<String, String> headers = new HashMap<>(); headers.put("X-Amz-Storage-Class", "REDUCED_REDUNDANCY"); Map<String, String> userMetadata = new HashMap<>(); userMetadata.put("My-Project", "Project One"); CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.putObject( PutObjectArgs.builder().bucket("my-bucketname").object("my-objectname").stream( inputStream, size, -1) .headers(headers) .userMetadata(userMetadata) .build()); // Upload input stream with server-side encryption. CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.putObject( PutObjectArgs.builder().bucket("my-bucketname").object("my-objectname").stream( inputStream, size, -1) .sse(sse) .build());- Parameters:
args-PutObjectArgsobject.- Returns:
CompletableFuture<ObjectWriteResponse> object.
-
uploadObject
Uploads data from a file to an object.Example:
// Upload an JSON file. CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.uploadObject( UploadObjectArgs.builder() .bucket("my-bucketname").object("my-objectname").filename("person.json").build()); // Upload a video file. CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.uploadObject( UploadObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .filename("my-video.avi") .contentType("video/mp4") .build());- Parameters:
args-UploadObjectArgsobject.- Returns:
CompletableFuture<ObjectWriteResponse> object.
-
getBucketPolicy
Gets bucket policy configuration of a bucket.Example:
CompletableFuture<String> future = minioAsyncClient.getBucketPolicy( GetBucketPolicyArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketPolicyArgsobject.- Returns:
CompletableFuture<String> object.
-
setBucketPolicy
Sets bucket policy configuration to a bucket.Example:
// Assume policyJson contains below JSON string; // { // "Statement": [ // { // "Action": [ // "s3:GetBucketLocation", // "s3:ListBucket" // ], // "Effect": "Allow", // "Principal": "*", // "Resource": "arn:aws:s3:::my-bucketname" // }, // { // "Action": "s3:GetObject", // "Effect": "Allow", // "Principal": "*", // "Resource": "arn:aws:s3:::my-bucketname/myobject*" // } // ], // "Version": "2012-10-17" // } // CompletableFuture<Void> future = minioAsyncClient.setBucketPolicy( SetBucketPolicyArgs.builder().bucket("my-bucketname").config(policyJson).build());- Parameters:
args-SetBucketPolicyArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteBucketPolicy
Deletes bucket policy configuration to a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteBucketPolicy( DeleteBucketPolicyArgs.builder().bucket("my-bucketname"));- Parameters:
args-DeleteBucketPolicyArgsobject.- Returns:
CompletableFuture<Void> object.
-
setBucketLifecycle
Sets lifecycle configuration to a bucket.Example:
List<LifecycleRule> rules = new ArrayList<>(); rules.add( new LifecycleRule( Status.ENABLED, null, new Expiration((ZonedDateTime) null, 365, null), new RuleFilter("logs/"), "rule2", null, null, null)); LifecycleConfiguration config = new LifecycleConfiguration(rules); CompletableFuture<Void> future = minioAsyncClient.setBucketLifecycle( SetBucketLifecycleArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketLifecycleArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteBucketLifecycle
Deletes lifecycle configuration of a bucket.Example:
CompletableFuture<Void> future = deleteBucketLifecycle( DeleteBucketLifecycleArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketLifecycleArgsobject.- Returns:
CompletableFuture<Void> object.
-
getBucketLifecycle
Gets lifecycle configuration of a bucket.Example:
CompletableFuture<LifecycleConfiguration> future = minioAsyncClient.getBucketLifecycle( GetBucketLifecycleArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketLifecycleArgsobject.- Returns:
LifecycleConfigurationobject.
-
getBucketNotification
public CompletableFuture<NotificationConfiguration> getBucketNotification(GetBucketNotificationArgs args) Gets notification configuration of a bucket.Example:
CompletableFuture<NotificationConfiguration> future = minioAsyncClient.getBucketNotification( GetBucketNotificationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketNotificationArgsobject.- Returns:
CompletableFuture<NotificationConfiguration> object.
-
setBucketNotification
Sets notification configuration to a bucket.Example:
List<EventType> eventList = new ArrayList<>(); eventList.add(EventType.OBJECT_CREATED_PUT); eventList.add(EventType.OBJECT_CREATED_COPY); QueueConfiguration queueConfiguration = new QueueConfiguration(); queueConfiguration.setQueue("arn:minio:sqs::1:webhook"); queueConfiguration.setEvents(eventList); queueConfiguration.setPrefixRule("images"); queueConfiguration.setSuffixRule("pg"); List<QueueConfiguration> queueConfigurationList = new ArrayList<>(); queueConfigurationList.add(queueConfiguration); NotificationConfiguration config = new NotificationConfiguration(); config.setQueueConfigurationList(queueConfigurationList); CompletableFuture<Void> future = minioAsyncClient.setBucketNotification( SetBucketNotificationArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketNotificationArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteBucketNotification
Deletes notification configuration of a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteBucketNotification( DeleteBucketNotificationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketNotificationArgsobject.- Returns:
CompletableFuture<Void> object.
-
getBucketReplication
public CompletableFuture<ReplicationConfiguration> getBucketReplication(GetBucketReplicationArgs args) Gets bucket replication configuration of a bucket.Example:
CompletableFuture<ReplicationConfiguration> future = minioAsyncClient.getBucketReplication( GetBucketReplicationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketReplicationArgsobject.- Returns:
CompletableFuture<ReplicationConfiguration> object.
-
setBucketReplication
Sets bucket replication configuration to a bucket.Example:
Map<String, String> tags = new HashMap<>(); tags.put("key1", "value1"); tags.put("key2", "value2"); ReplicationRule rule = new ReplicationRule( new DeleteMarkerReplication(Status.DISABLED), new ReplicationDestination( null, null, "REPLACE-WITH-ACTUAL-DESTINATION-BUCKET-ARN", null, null, null, null), null, new RuleFilter(new AndOperator("TaxDocs", tags)), "rule1", null, 1, null, Status.ENABLED); List<ReplicationRule> rules = new ArrayList<>(); rules.add(rule); ReplicationConfiguration config = new ReplicationConfiguration("REPLACE-WITH-ACTUAL-ROLE", rules); CompletableFuture<Void> future = minioAsyncClient.setBucketReplication( SetBucketReplicationArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketReplicationArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteBucketReplication
Deletes bucket replication configuration from a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteBucketReplication( DeleteBucketReplicationArgs.builder().bucket("my-bucketname"));- Parameters:
args-DeleteBucketReplicationArgsobject.- Returns:
CompletableFuture<Void> object.
-
listenBucketNotification
public CloseableIterator<Result<NotificationRecords>> listenBucketNotification(ListenBucketNotificationArgs args) throws MinioException Listens events of object prefix and suffix of a bucket. The returned closable iterator is lazily evaluated hence its required to iterate to get new records and must be used with try-with-resource to release underneath network resources.Example:
String[] events = {"s3:ObjectCreated:*", "s3:ObjectAccessed:*"}; try (CloseableIterator<Result<NotificationRecords>> ci = minioAsyncClient.listenBucketNotification( ListenBucketNotificationArgs.builder() .bucket("bucketName") .prefix("") .suffix("") .events(events) .build())) { while (ci.hasNext()) { NotificationRecords records = ci.next().get(); for (Event event : records.events()) { System.out.println("Event " + event.eventType() + " occurred at " + event.eventTime() + " for " + event.bucketName() + "/" + event.objectName()); } } }- Parameters:
args-ListenBucketNotificationArgsobject.- Returns:
CloseableIterator<Result<NotificationRecords>>- Lazy closable iterator contains event records.- Throws:
MinioException- thrown to indicate SDK exception.
-
selectObjectContent
Selects content of an object by SQL expression.Example:
String sqlExpression = "select * from S3Object"; InputSerialization is = new InputSerialization(null, false, null, null, FileHeaderInfo.USE, null, null, null); OutputSerialization os = new OutputSerialization(null, null, null, QuoteFields.ASNEEDED, null); SelectResponseStream stream = minioAsyncClient.selectObjectContent( SelectObjectContentArgs.builder() .bucket("my-bucketname") .object("my-objectname") .sqlExpression(sqlExpression) .inputSerialization(is) .outputSerialization(os) .requestProgress(true) .build()); byte[] buf = new byte[512]; int bytesRead = stream.read(buf, 0, buf.length); System.out.println(new String(buf, 0, bytesRead, StandardCharsets.UTF_8)); Stats stats = stream.stats(); System.out.println("bytes scanned: " + stats.bytesScanned()); System.out.println("bytes processed: " + stats.bytesProcessed()); System.out.println("bytes returned: " + stats.bytesReturned()); stream.close();- Parameters:
args- instance ofSelectObjectContentArgs- Returns:
SelectResponseStream- Contains filtered records and progress.- Throws:
MinioException- thrown to indicate SDK exception.
-
setBucketEncryption
Sets encryption configuration of a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.setBucketEncryption( SetBucketEncryptionArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketEncryptionArgsobject.- Returns:
CompletableFuture<Void> object.
-
getBucketEncryption
Gets encryption configuration of a bucket.Example:
CompletableFuture<SseConfiguration> future = minioAsyncClient.getBucketEncryption( GetBucketEncryptionArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketEncryptionArgsobject.- Returns:
CompletableFuture<SseConfiguration> object.
-
deleteBucketEncryption
Deletes encryption configuration of a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteBucketEncryption( DeleteBucketEncryptionArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketEncryptionArgsobject.- Returns:
CompletableFuture<Void> object.
-
getBucketTags
Gets tags of a bucket.Example:
CompletableFuture<Tags> future = minioAsyncClient.getBucketTags(GetBucketTagsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketTagsArgsobject.- Returns:
CompletableFuture<Tags> object.
-
setBucketTags
Sets tags to a bucket.Example:
Map<String, String> map = new HashMap<>(); map.put("Project", "Project One"); map.put("User", "jsmith"); CompletableFuture<Void> future = minioAsyncClient.setBucketTags( SetBucketTagsArgs.builder().bucket("my-bucketname").tags(map).build());- Parameters:
args-SetBucketTagsArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteBucketTags
Deletes tags of a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteBucketTags( DeleteBucketTagsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketTagsArgsobject.- Returns:
CompletableFuture<Void> object.
-
getObjectTags
Gets tags of an object.Example:
CompletableFuture<Tags> future = minioAsyncClient.getObjectTags( GetObjectTagsArgs.builder().bucket("my-bucketname").object("my-objectname").build());- Parameters:
args-GetObjectTagsArgsobject.- Returns:
CompletableFuture<Tags> object.
-
setObjectTags
Sets tags to an object.Example:
Map<String, String> map = new HashMap<>(); map.put("Project", "Project One"); map.put("User", "jsmith"); CompletableFuture<Void> future = minioAsyncClient.setObjectTags( SetObjectTagsArgs.builder() .bucket("my-bucketname") .object("my-objectname") .tags((map) .build());- Parameters:
args-SetObjectTagsArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteObjectTags
Deletes tags of an object.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteObjectTags( DeleteObjectTags.builder().bucket("my-bucketname").object("my-objectname").build());- Parameters:
args-DeleteObjectTagsArgsobject.- Returns:
CompletableFuture<Void> object.
-
getBucketCors
Gets CORS configuration of a bucket.Example:
CompletableFuture<CORSConfiguration> future = minioAsyncClient.getBucketCors(GetBucketCorsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketCorsArgsobject.- Returns:
CompletableFuture<CORSConfiguration> object.
-
setBucketCors
Sets CORS configuration to a bucket.Example:
CORSConfiguration config = new CORSConfiguration( Arrays.asList( new CORSConfiguration.CORSRule[] { // Rule 1 new CORSConfiguration.CORSRule( Arrays.asList(new String[] {"*"}), // Allowed headers Arrays.asList(new String[] {"PUT", "POST", "DELETE"}), // Allowed methods Arrays.asList(new String[] {"http://www.example.com"}), // Allowed origins Arrays.asList( new String[] {"x-amz-server-side-encryption"}), // Expose headers null, // ID 3000), // Maximum age seconds // Rule 2 new CORSConfiguration.CORSRule( null, // Allowed headers Arrays.asList(new String[] {"GET"}), // Allowed methods Arrays.asList(new String[] {"*"}), // Allowed origins null, // Expose headers null, // ID null // Maximum age seconds ) })); CompletableFuture<Void> future = minioAsyncClient.setBucketCors( SetBucketCorsArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketCorsArgsobject.- Returns:
CompletableFuture<Void> object.
-
deleteBucketCors
Deletes CORS configuration of a bucket.Example:
CompletableFuture<Void> future = minioAsyncClient.deleteBucketCors( DeleteBucketCorsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketCorsArgsobject.- Returns:
CompletableFuture<Void> object.
-
getObjectAcl
Gets access control policy of an object.Example:
CompletableFuture<AccessControlPolicy> future = minioAsyncClient.getObjectAcl( GetObjectAclArgs.builder().bucket("my-bucketname").object("my-objectname").build());- Parameters:
args-GetObjectAclArgsobject.- Returns:
CompletableFuture<AccessControlPolicy> object.
-
getObjectAttributes
public CompletableFuture<GetObjectAttributesResponse> getObjectAttributes(GetObjectAttributesArgs args) Gets attributes of an object.Example:
CompletableFuture<GetObjectAttributesResponse> future = minioAsyncClient.getObjectAttributes( GetObjectAttributesArgs.builder() .bucket("my-bucketname") .object("my-objectname") .objectAttributes( new String[] { "ETag", "Checksum", "ObjectParts", "StorageClass", "ObjectSize" }) .build());- Parameters:
args-GetObjectAttributesArgsobject.- Returns:
CompletableFuture<GetObjectAttributesResponse> object.
-
uploadSnowballObjects
Uploads multiple objects in a single put call. It is done by creating intermediate TAR file optionally compressed which is uploaded to S3 service.Example:
// Upload snowball objects. List<SnowballObject> objects = new ArrayList<SnowballObject>(); objects.add( new SnowballObject( "my-object-one", new ByteArrayInputStream("hello".getBytes(StandardCharsets.UTF_8)), 5, null)); objects.add( new SnowballObject( "my-object-two", new ByteArrayInputStream("java".getBytes(StandardCharsets.UTF_8)), 4, null)); CompletableFuture<ObjectWriteResponse> future = minioAsyncClient.uploadSnowballObjects( UploadSnowballObjectsArgs.builder().bucket("my-bucketname").objects(objects).build());- Parameters:
args-UploadSnowballObjectsArgsobject.- Returns:
CompletableFuture<ObjectWriteResponse> object.
-
putObjectFanOut
Uploads multiple objects with same content from single stream with optional metadata and tags.Example:
Map<String, String> map = new HashMap<>(); map.put("Project", "Project One"); map.put("User", "jsmith"); CompletableFuture<PutObjectFanOutResponse> future = minioAsyncClient.putObjectFanOut( PutObjectFanOutArgs.builder().bucket("my-bucketname").stream( new ByteArrayInputStream("somedata".getBytes(StandardCharsets.UTF_8)), 8) .entries( Arrays.asList( new PutObjectFanOutEntry[] { PutObjectFanOutEntry.builder().key("fan-out.0").build(), PutObjectFanOutEntry.builder().key("fan-out.1").tags(map).build() })) .build());- Parameters:
args-PutObjectFanOutArgsobject.- Returns:
CompletableFuture<PutObjectFanOutResponse> object.
-
promptObject
Performs language model inference with the prompt and referenced object as context.- Parameters:
args-PromptObjectArgsobject.- Returns:
CompletableFuture<PromptObjectResponse> object.
-
appendObject
Appends from a file, stream or data to existing object in a bucket.- Parameters:
args-AppendObjectArgsobject.- Returns:
CompletableFuture<ObjectWriteResponse> object.
-
throwMinioException
Throws encapsulated exception wrapped byCompletionException.- Throws:
MinioException
-
objectV1Lister
Execute list objects v1. -
objectV2Lister
Execute list objects v2. -
objectVersionLister
Execute list object versions.
-