Package io.minio
Class MinioClient
java.lang.Object
io.minio.MinioClient
- All Implemented Interfaces:
AutoCloseable
Simple Storage Service (aka S3) client to perform bucket and object operations.
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 MinioClient.builder() to create S3 client.
// Create client with anonymous access.
MinioClient minioClient = MinioClient.builder().endpoint("https://play.min.io").build();
// Create client with credentials.
MinioClient minioClient =
MinioClient.builder()
.endpoint("https://play.min.io")
.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
.build();
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionappendObject(AppendObjectArgs args) Appends from a file, stream or data to existing object in a bucket.booleanbucketExists(BucketExistsArgs args) Checks if a bucket exists.static MinioClient.Builderbuilder()Creates newMinioClient.Builder.voidclose()Closes underneath async client.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.voidDeletes CORS configuration of a bucket.voidDeletes encryption configuration of a bucket.voidDeletes lifecycle configuration of a bucket.voidDeletes notification configuration of a bucket.voidDeletes bucket policy configuration to a bucket.voidDeletes bucket replication configuration from a bucket.voidDeletes tags of a bucket.voidDeletes default object retention in a bucket.voidDeletes tags of an object.voidDisables dual-stack endpoint for Amazon S3 endpoint.voidDisables legal hold on an object.voidDisables virtual-style endpoint.voidDownloads data of a SSE-C encrypted object to file.voidEnables dual-stack endpoint for Amazon S3 endpoint.voidEnables legal hold on an object.voidEnables virtual-style endpoint.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.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.voidIgnores check on server certificate for HTTPS connection.booleanReturns 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.voidmakeBucket(MakeBucketArgs args) Creates a bucket with region and object lock.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.voidremoveBucket(RemoveBucketArgs args) Removes an empty bucket using argumentsvoidremoveObject(RemoveObjectArgs args) Removes an object.Removes multiple objects lazily.voidRestores an object.Selects content of an object by SQL expression.voidsetAppInfo(String name, String version) Sets application's name/version to user agent.voidsetAwsS3Prefix(String awsS3Prefix) Sets AWS S3 domain prefix.voidSets CORS configuration to a bucket.voidSets encryption configuration of a bucket.voidSets lifecycle configuration to a bucket.voidSets notification configuration to a bucket.voidSets bucket policy configuration to a bucket.voidSets bucket replication configuration to a bucket.voidSets tags to a bucket.voidSets versioning configuration of a bucket.voidSets default object retention in a bucket.voidSets retention configuration to an object.voidSets tags to an object.voidSets request retry parameters.voidsetTimeout(long connectTimeout, long writeTimeout, long readTimeout) Sets HTTP connect, write and read timeouts.statObject(StatObjectArgs args) Gets information of an object.voidtraceOff()Disables HTTP call tracing previously enabled.voidtraceOn(OutputStream traceStream) Enables HTTP call tracing and written to traceStream.uploadObject(UploadObjectArgs args) Uploads data from a file to an object.Uploads multiple objects in a single put call.
-
Constructor Details
-
MinioClient
-
-
Method Details
-
statObject
Gets information of an object.Example:
// Get information of an object. StatObjectResponse stat = minioClient.statObject( StatObjectArgs.builder().bucket("my-bucketname").object("my-objectname").build()); // Get information of SSE-C encrypted object. StatObjectResponse stat = minioClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .ssec(ssec) .build()); // Get information of a versioned object. StatObjectResponse stat = minioClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("version-id") .build()); // Get information of a SSE-C encrypted versioned object. StatObjectResponse stat = minioClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("version-id") .ssec(ssec) .build());- Parameters:
args-StatObjectArgsobject.- Returns:
StatObjectResponse- Populated object information and metadata.- Throws:
MinioException- thrown to indicate SDK exception.- See Also:
-
getObject
Gets data from offset to length of a SSE-C encrypted object. ReturnedGetObjectResponsemust be closed after use to release network resources.Example:
try (GetObjectResponse response = minioClient.getObject( GetObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .offset(offset) .length(len) .ssec(ssec) .build() ) { // Read data from response // which is InputStream interface compatible }- Parameters:
args- Object ofGetObjectArgs- Throws:
MinioException- thrown to indicate SDK exception.
-
downloadObject
Downloads data of a SSE-C encrypted object to file.Example:
minioClient.downloadObject( DownloadObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .ssec(ssec) .filename("my-filename") .build());- Parameters:
args- Object ofDownloadObjectArgs- Throws:
MinioException- thrown to indicate SDK exception.
-
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". minioClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( CopySource.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". minioClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( CopySource.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". minioClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( CopySource.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". minioClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( CopySource.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". minioClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( CopySource.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". minioClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( CopySource.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". minioClient.copyObject( CopyObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .source( CopySource.builder() .bucket("my-source-bucketname") .object("my-objectname") .matchETag(etag) // Replace with actual etag. .build()) .headers(headers) // Replace with actual headers. .build());- Parameters:
args-CopyObjectArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
composeObject
Creates an object by combining data from different source objects using server-side copy.Example:
List<ComposeSource> sourceObjectList = new ArrayList<ComposeSource>(); sourceObjectList.add( ComposeSource.builder().bucket("my-job-bucket").object("my-objectname-part-one").build()); sourceObjectList.add( ComposeSource.builder().bucket("my-job-bucket").object("my-objectname-part-two").build()); sourceObjectList.add( ComposeSource.builder().bucket("my-job-bucket").object("my-objectname-part-three").build()); // Create my-bucketname/my-objectname by combining source object list. minioClient.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"); minioClient.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. minioClient.composeObject( ComposeObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .sources(sourceObjectList) .userMetadata(userMetadata) .ssec(sse) .build());- Parameters:
args-ComposeObjectArgsobject.- Returns:
ObjectWriteResponseobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
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 = minioClient.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 = minioClient.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 = minioClient.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 = minioClient.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. minioClient.removeObject( RemoveObjectArgs.builder().bucket("my-bucketname").object("my-objectname").build()); // Remove versioned object. minioClient.removeObject( RemoveObjectArgs.builder() .bucket("my-bucketname") .object("my-versioned-objectname") .versionId("my-versionid") .build()); // Remove versioned object bypassing Governance mode. minioClient.removeObject( RemoveObjectArgs.builder() .bucket("my-bucketname") .object("my-versioned-objectname") .versionId("my-versionid") .bypassRetentionMode(true) .build());- Parameters:
args-RemoveObjectArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
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 = minioClient.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.Example:
// Restore object. minioClient.restoreObject( RestoreObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .request(new RestoreRequest(null, null, null, null, null, null)) .build()); // Restore versioned object. minioClient.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.- Throws:
MinioException- thrown to indicate SDK exception.
-
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 = minioClient.listObjects( ListObjectsArgs.builder().bucket("my-bucketname").build()); // Lists objects information recursively. Iterable<Result<Item>> results = minioClient.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 = minioClient.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 = minioClient.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:
List<ListAllMyBucketsResult.Bucket> bucketList = minioClient.listBuckets(); for (Bucket bucket : bucketList) { System.out.println(bucket.creationDate() + ", " + bucket.name()); }- Returns:
List<ListAllMyBucketsResult.Bucket>- List of bucket information.- Throws:
MinioException- thrown to indicate SDK exception.
-
listBuckets
Lists bucket information of all buckets.Example:
Iterable<Result<ListAllMyBucketsResult.Bucket>> results = minioClient.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:
boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("my-bucketname").build()); if (found) { System.out.println("my-bucketname exists"); } else { System.out.println("my-bucketname does not exist"); }- Parameters:
args-BucketExistsArgsobject.- Returns:
- boolean - True if the bucket exists.
- Throws:
MinioException- thrown to indicate SDK exception.
-
makeBucket
Creates a bucket with region and object lock.Example:
// Create bucket with default region. minioClient.makeBucket( MakeBucketArgs.builder() .bucket("my-bucketname") .build()); // Create bucket with specific region. minioClient.makeBucket( MakeBucketArgs.builder() .bucket("my-bucketname") .region("us-west-1") .build()); // Create object-lock enabled bucket with specific region. minioClient.makeBucket( MakeBucketArgs.builder() .bucket("my-bucketname") .region("us-west-1") .objectLock(true) .build());- Parameters:
args- Object with bucket name, region and lock functionality- Throws:
MinioException- thrown to indicate SDK exception.
-
setBucketVersioning
Sets versioning configuration of a bucket.Example:
minioClient.setBucketVersioning( SetBucketVersioningArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketVersioningArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketVersioning
public VersioningConfiguration getBucketVersioning(GetBucketVersioningArgs args) throws MinioException Gets versioning configuration of a bucket.Example:
VersioningConfiguration config = minioClient.getBucketVersioning( GetBucketVersioningArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketVersioningArgsobject.- Returns:
VersioningConfiguration- Versioning configuration.- Throws:
MinioException- thrown to indicate SDK exception.
-
setObjectLockConfiguration
Sets default object retention in a bucket.Example:
ObjectLockConfiguration config = new ObjectLockConfiguration( RetentionMode.COMPLIANCE, new RetentionDurationDays(100)); minioClient.setObjectLockConfiguration( SetObjectLockConfigurationArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetObjectLockConfigurationArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteObjectLockConfiguration
public void deleteObjectLockConfiguration(DeleteObjectLockConfigurationArgs args) throws MinioException Deletes default object retention in a bucket.Example:
minioClient.deleteObjectLockConfiguration( DeleteObjectLockConfigurationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteObjectLockConfigurationArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getObjectLockConfiguration
public ObjectLockConfiguration getObjectLockConfiguration(GetObjectLockConfigurationArgs args) throws MinioException Gets default object retention in a bucket.Example:
ObjectLockConfiguration config = minioClient.getObjectLockConfiguration( GetObjectLockConfigurationArgs.builder().bucket("my-bucketname").build()); System.out.println("Mode: " + config.mode()); System.out.println( "Duration: " + config.duration().duration() + " " + config.duration().unit());- Parameters:
args-GetObjectLockConfigurationArgsobject.- Returns:
ObjectLockConfiguration- Default retention configuration.- Throws:
MinioException- thrown to indicate SDK exception.
-
setObjectRetention
Sets retention configuration to an object.Example:
Retention retention = new Retention( RetentionMode.COMPLIANCE, ZonedDateTime.now().plusYears(1)); minioClient.setObjectRetention( SetObjectRetentionArgs.builder() .bucket("my-bucketname") .object("my-objectname") .config(config) .bypassGovernanceMode(true) .build());- Parameters:
args-SetObjectRetentionArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getObjectRetention
Gets retention configuration of an object.Example:
Retention retention = minioClient.getObjectRetention(GetObjectRetentionArgs.builder() .bucket(bucketName) .object(objectName) .versionId(versionId) .build());); System.out.println( "mode: " + retention.mode() + "until: " + retention.retainUntilDate());- Parameters:
args-GetObjectRetentionArgsobject.- Returns:
Retention- Object retention configuration.- Throws:
MinioException- thrown to indicate SDK exception.
-
enableObjectLegalHold
Enables legal hold on an object.Example:
minioClient.enableObjectLegalHold( EnableObjectLegalHoldArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build());- Parameters:
args-EnableObjectLegalHoldArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
disableObjectLegalHold
Disables legal hold on an object.Example:
minioClient.disableObjectLegalHold( DisableObjectLegalHoldArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build());- Parameters:
args-DisableObjectLegalHoldArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
isObjectLegalHoldEnabled
Returns true if legal hold is enabled on an object.Example:
argsboolean status = s3Client.isObjectLegalHoldEnabled( IsObjectLegalHoldEnabledArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build()); if (status) { System.out.println("Legal hold is on"); } else { System.out.println("Legal hold is off"); }IsObjectLegalHoldEnabledArgsobject.- Returns:
- boolean - True if legal hold is enabled.
- Throws:
MinioException- thrown to indicate SDK exception.
-
removeBucket
Removes an empty bucket using argumentsExample:
minioClient.removeBucket(RemoveBucketArgs.builder().bucket("my-bucketname").build());- Parameters:
args-RemoveBucketArgsbucket.- Throws:
MinioException- thrown to indicate SDK exception.
-
putObject
Uploads data from a stream to an object.Example:
// Upload known sized input stream. minioClient.putObject( PutObjectArgs.builder().bucket("my-bucketname").object("my-objectname").stream( inputStream, size, -1) .contentType("video/mp4") .build()); // Upload unknown sized input stream. minioClient.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). minioClient.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"); minioClient.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. minioClient.putObject( PutObjectArgs.builder().bucket("my-bucketname").object("my-objectname").stream( inputStream, size, -1) .sse(sse) .build());- Parameters:
args-PutObjectArgsobject.- Returns:
ObjectWriteResponseobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
uploadObject
Uploads data from a file to an object.Example:
// Upload an JSON file. minioClient.uploadObject( UploadObjectArgs.builder() .bucket("my-bucketname").object("my-objectname").filename("person.json").build()); // Upload a video file. minioClient.uploadObject( UploadObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .filename("my-video.avi") .contentType("video/mp4") .build());- Parameters:
args-UploadObjectArgsobject.- Returns:
ObjectWriteResponseobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketPolicy
Gets bucket policy configuration of a bucket.Example:
String config = minioClient.getBucketPolicy(GetBucketPolicyArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketPolicyArgsobject.- Returns:
- String - Bucket policy configuration as JSON string.
- Throws:
MinioException- thrown to indicate SDK exception.
-
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" // } // minioClient.setBucketPolicy( SetBucketPolicyArgs.builder().bucket("my-bucketname").config(policyJson).build());- Parameters:
args-SetBucketPolicyArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteBucketPolicy
Deletes bucket policy configuration to a bucket.Example:
minioClient.deleteBucketPolicy(DeleteBucketPolicyArgs.builder().bucket("my-bucketname"));- Parameters:
args-DeleteBucketPolicyArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
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); minioClient.setBucketLifecycle( SetBucketLifecycleArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketLifecycleArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteBucketLifecycle
Deletes lifecycle configuration of a bucket.Example:
deleteBucketLifecycle(DeleteBucketLifecycleArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketLifecycleArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketLifecycle
Gets lifecycle configuration of a bucket.Example:
LifecycleConfiguration config = minioClient.getBucketLifecycle( GetBucketLifecycleArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketLifecycleArgsobject.- Returns:
LifecycleConfigurationobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketNotification
public NotificationConfiguration getBucketNotification(GetBucketNotificationArgs args) throws MinioException Gets notification configuration of a bucket.Example:
NotificationConfiguration config = minioClient.getBucketNotification( GetBucketNotificationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketNotificationArgsobject.- Returns:
NotificationConfiguration- Notification configuration.- Throws:
MinioException- thrown to indicate SDK exception.
-
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); minioClient.setBucketNotification( SetBucketNotificationArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketNotificationArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteBucketNotification
Deletes notification configuration of a bucket.Example:
minioClient.deleteBucketNotification( DeleteBucketNotificationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketNotificationArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketReplication
public ReplicationConfiguration getBucketReplication(GetBucketReplicationArgs args) throws MinioException Gets bucket replication configuration of a bucket.Example:
ReplicationConfiguration config = minioClient.getBucketReplication( GetBucketReplicationArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketReplicationArgsobject.- Returns:
ReplicationConfigurationobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
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); minioClient.setBucketReplication( SetBucketReplicationArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketReplicationArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteBucketReplication
Deletes bucket replication configuration from a bucket.Example:
minioClient.deleteBucketReplication( DeleteBucketReplicationArgs.builder().bucket("my-bucketname"));- Parameters:
args-DeleteBucketReplicationArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
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 = minioClient.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 = minioClient.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:
minioClient.setBucketEncryption( SetBucketEncryptionArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketEncryptionArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketEncryption
Gets encryption configuration of a bucket.Example:
SseConfiguration config = minioClient.getBucketEncryption( GetBucketEncryptionArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketEncryptionArgsobject.- Returns:
SseConfiguration- Server-side encryption configuration.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteBucketEncryption
Deletes encryption configuration of a bucket.Example:
minioClient.deleteBucketEncryption( DeleteBucketEncryptionArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketEncryptionArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketTags
Gets tags of a bucket.Example:
Tags tags = minioClient.getBucketTags(GetBucketTagsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketTagsArgsobject.- Returns:
Tags- Tags.- Throws:
MinioException- thrown to indicate SDK exception.
-
setBucketTags
Sets tags to a bucket.Example:
Map<String, String> map = new HashMap<>(); map.put("Project", "Project One"); map.put("User", "jsmith"); minioClient.setBucketTags( SetBucketTagsArgs.builder().bucket("my-bucketname").tags(map).build());- Parameters:
args-SetBucketTagsArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteBucketTags
Deletes tags of a bucket.Example:
minioClient.deleteBucketTags(DeleteBucketTagsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketTagsArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getObjectTags
Gets tags of an object.Example:
Tags tags = minioClient.getObjectTags( GetObjectTagsArgs.builder().bucket("my-bucketname").object("my-objectname").build());- Parameters:
args-GetObjectTagsArgsobject.- Returns:
Tags- Tags.- Throws:
MinioException- thrown to indicate SDK exception.
-
setObjectTags
Sets tags to an object.Example:
Map<String, String> map = new HashMap<>(); map.put("Project", "Project One"); map.put("User", "jsmith"); minioClient.setObjectTags( SetObjectTagsArgs.builder() .bucket("my-bucketname") .object("my-objectname") .tags((map) .build());- Parameters:
args-SetObjectTagsArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteObjectTags
Deletes tags of an object.Example:
minioClient.deleteObjectTags( DeleteObjectTags.builder().bucket("my-bucketname").object("my-objectname").build());- Parameters:
args-DeleteObjectTagsArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getBucketCors
Gets CORS configuration of a bucket.Example:
CORSConfiguration config = minioClient.getBucketCors(GetBucketCorsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-GetBucketCorsArgsobject.- Returns:
CORSConfiguration- CORSConfiguration.- Throws:
MinioException- thrown to indicate SDK exception.
-
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 ) })); minioClient.setBucketCors( SetBucketCorsArgs.builder().bucket("my-bucketname").config(config).build());- Parameters:
args-SetBucketCorsArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
deleteBucketCors
Deletes CORS configuration of a bucket.Example:
minioClient.deleteBucketCors(DeleteBucketCorsArgs.builder().bucket("my-bucketname").build());- Parameters:
args-DeleteBucketCorsArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
getObjectAcl
Gets access control policy of an object.Example:
AccessControlPolicy policy = minioClient.getObjectAcl( GetObjectAclArgs.builder().bucket("my-bucketname").object("my-objectname").build());- Parameters:
args-GetObjectAclArgsobject.- Returns:
AccessControlPolicy- Access control policy object.- Throws:
MinioException- thrown to indicate SDK exception.
-
getObjectAttributes
public GetObjectAttributesResponse getObjectAttributes(GetObjectAttributesArgs args) throws MinioException Gets attributes of an object.Example:
GetObjectAttributesResponse response = minioClient.getObjectAttributes( GetObjectAttributesArgs.builder() .bucket("my-bucketname") .object("my-objectname") .objectAttributes( new String[] { "ETag", "Checksum", "ObjectParts", "StorageClass", "ObjectSize" }) .build());- Parameters:
args-GetObjectAttributesArgsobject.- Returns:
GetObjectAttributesResponse- Response object.- Throws:
MinioException- thrown to indicate SDK exception.
-
uploadSnowballObjects
public ObjectWriteResponse uploadSnowballObjects(UploadSnowballObjectsArgs args) throws MinioException 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)); minioClient.uploadSnowballObjects( UploadSnowballObjectsArgs.builder().bucket("my-bucketname").objects(objects).build());- Parameters:
args-UploadSnowballObjectsArgsobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
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"); PutObjectFanOutResponse future = minioClient.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:
PutObjectFanOutResponseobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
promptObject
Performs language model inference with the prompt and referenced object as context.- Parameters:
args-PromptObjectArgsobject.- Returns:
PromptObjectResponseobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
appendObject
Appends from a file, stream or data to existing object in a bucket.- Parameters:
args-AppendObjectArgsobject.- Returns:
ObjectWriteResponseobject.- Throws:
MinioException- thrown to indicate SDK exception.
-
setTimeout
public void setTimeout(long connectTimeout, long writeTimeout, long readTimeout) Sets HTTP connect, write and read timeouts. A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE when converted to milliseconds.Example:
minioClient.setTimeout(TimeUnit.SECONDS.toMillis(10), TimeUnit.SECONDS.toMillis(10), TimeUnit.SECONDS.toMillis(30));- Parameters:
connectTimeout- HTTP connect timeout in milliseconds.writeTimeout- HTTP write timeout in milliseconds.readTimeout- HTTP read timeout in milliseconds.
-
setRetry
Sets request retry parameters. Any null/invalid values disable retry.Example:
minioClient.setRetry(ImmutableSet.of(408, 504), 250, 3);- Parameters:
retryStatusCodes- HTTP status codes to be retried.delayMs- Delay between retries.maxRetries- Maximum number of retry attempts.
-
ignoreCertCheck
Ignores check on server certificate for HTTPS connection.Example:
minioClient.ignoreCertCheck();- Throws:
MinioException- thrown to indicate SDK exception.
-
setAppInfo
Sets application's name/version to user agent. For more information about user agent refer #rfc2616.- Parameters:
name- Your application name.version- Your application version.
-
traceOn
Enables HTTP call tracing and written to traceStream.- Parameters:
traceStream-OutputStreamfor writing HTTP call tracing.- See Also:
-
traceOff
public void traceOff()Disables HTTP call tracing previously enabled.- See Also:
-
enableDualStackEndpoint
public void enableDualStackEndpoint()Enables dual-stack endpoint for Amazon S3 endpoint. -
disableDualStackEndpoint
public void disableDualStackEndpoint()Disables dual-stack endpoint for Amazon S3 endpoint. -
enableVirtualStyleEndpoint
public void enableVirtualStyleEndpoint()Enables virtual-style endpoint. -
disableVirtualStyleEndpoint
public void disableVirtualStyleEndpoint()Disables virtual-style endpoint. -
setAwsS3Prefix
Sets AWS S3 domain prefix. -
close
Closes underneath async client.- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-
builder
Creates newMinioClient.Builder.
-