Package org.bremersee.data.minio
Interface MinioOperations
-
- All Known Implementing Classes:
MinioTemplate
@Validated public interface MinioOperationsThe minio operations.- Author:
- Christian Bremer
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default booleanbucketExists(io.minio.BucketExistsArgs args)Checks if a bucket exists.default io.minio.ObjectWriteResponsecomposeObject(io.minio.ComposeObjectArgs args)Creates an object by combining data from different source objects using server-side copy.default io.minio.ObjectWriteResponsecopyObject(io.minio.CopyObjectArgs args)Creates an object by server-side copying data from another object.default voiddeleteBucketEncryption(io.minio.DeleteBucketEncryptionArgs args)Deletes encryption configuration of a bucket.default voiddeleteBucketLifecycle(io.minio.DeleteBucketLifecycleArgs args)Deletes lifecycle configuration of a bucket.default voiddeleteBucketNotification(io.minio.DeleteBucketNotificationArgs args)Deletes notification configuration of a bucket.default voiddeleteBucketPolicy(io.minio.DeleteBucketPolicyArgs args)Deletes bucket policy configuration to a bucket.default voiddeleteBucketReplication(io.minio.DeleteBucketReplicationArgs args)Deletes bucket replication configuration from a bucket.default voiddeleteBucketTags(io.minio.DeleteBucketTagsArgs args)Deletes tags of a bucket.default voiddeleteObjectLockConfiguration(io.minio.DeleteObjectLockConfigurationArgs args)Deletes default object retention in a bucket.default voiddeleteObjectTags(io.minio.DeleteObjectTagsArgs args)Deletes tags of an object.default voiddisableObjectLegalHold(io.minio.DisableObjectLegalHoldArgs args)Disables legal hold on an object.default voiddownloadObject(io.minio.DownloadObjectArgs args)Downloads data of a SSE-C encrypted object to file.default voidenableObjectLegalHold(io.minio.EnableObjectLegalHoldArgs args)Enables legal hold on an object.<T> Texecute(MinioClientCallback<T> callback)Execute minio callback.default io.minio.messages.SseConfigurationgetBucketEncryption(io.minio.GetBucketEncryptionArgs args)Gets encryption configuration of a bucket.default Optional<io.minio.messages.LifecycleConfiguration>getBucketLifecycle(io.minio.GetBucketLifecycleArgs args)Gets lifecycle configuration of a bucket.default io.minio.messages.NotificationConfigurationgetBucketNotification(io.minio.GetBucketNotificationArgs args)Gets notification configuration of a bucket.default StringgetBucketPolicy(io.minio.GetBucketPolicyArgs args)Gets bucket policy configuration of a bucket.default Optional<io.minio.messages.ReplicationConfiguration>getBucketReplication(io.minio.GetBucketReplicationArgs args)Gets bucket replication configuration of a bucket.default io.minio.messages.TagsgetBucketTags(io.minio.GetBucketTagsArgs args)Gets tags of a bucket.default io.minio.messages.VersioningConfigurationgetBucketVersioning(io.minio.GetBucketVersioningArgs args)Gets versioning configuration of a bucket.default InputStreamgetObject(io.minio.GetObjectArgs args)Gets data from offset to length of a SSE-C encrypted object.default io.minio.messages.ObjectLockConfigurationgetObjectLockConfiguration(io.minio.GetObjectLockConfigurationArgs args)Gets default object retention in a bucket.default io.minio.messages.RetentiongetObjectRetention(io.minio.GetObjectRetentionArgs args)Gets retention configuration of an object.default io.minio.messages.TagsgetObjectTags(io.minio.GetObjectTagsArgs args)Gets tags of an object.default StringgetPresignedObjectUrl(io.minio.GetPresignedObjectUrlArgs args)Gets presigned URL of an object for HTTP method, expiry time and custom request parameters.default Map<String,String>getPresignedPostFormData(io.minio.PostPolicy policy)Gets form-data ofPostPolicyof an object to upload its data using POST method.default booleanisObjectLegalHoldEnabled(io.minio.IsObjectLegalHoldEnabledArgs args)Returns true if legal hold is enabled on an object.default List<io.minio.messages.Bucket>listBuckets()Lists bucket information of all buckets.default List<io.minio.messages.Bucket>listBuckets(io.minio.ListBucketsArgs args)Lists bucket information of all buckets.default io.minio.CloseableIterator<io.minio.Result<io.minio.messages.NotificationRecords>>listenBucketNotification(io.minio.ListenBucketNotificationArgs args)Listens events of object prefix and suffix of a bucket.default Iterable<io.minio.Result<io.minio.messages.Item>>listObjects(io.minio.ListObjectsArgs args)Lists objects information optionally with versions of a bucket.default voidmakeBucket(io.minio.MakeBucketArgs args)Creates a bucket with region and object lock.default booleanobjectExists(io.minio.StatObjectArgs args)Check whether an object exists or not.default io.minio.ObjectWriteResponseputObject(io.minio.PutObjectArgs args)Uploads data from a stream to an object.default voidremoveBucket(io.minio.RemoveBucketArgs args)Removes an empty bucket using arguments.default voidremoveObject(io.minio.RemoveObjectArgs args)Removes an object.default Iterable<io.minio.Result<io.minio.messages.DeleteError>>removeObjects(io.minio.RemoveObjectsArgs args)Removes multiple objects lazily.default io.minio.SelectResponseStreamselectObjectContent(io.minio.SelectObjectContentArgs args)Selects content of an object by SQL expression.default voidsetBucketEncryption(io.minio.SetBucketEncryptionArgs args)Sets encryption configuration of a bucket.default voidsetBucketLifecycle(io.minio.SetBucketLifecycleArgs args)Sets lifecycle configuration to a bucket.default voidsetBucketNotification(io.minio.SetBucketNotificationArgs args)Sets notification configuration to a bucket.default voidsetBucketPolicy(io.minio.SetBucketPolicyArgs args)Sets bucket policy configuration to a bucket.default voidsetBucketReplication(io.minio.SetBucketReplicationArgs args)Sets bucket replication configuration to a bucket.default voidsetBucketTags(io.minio.SetBucketTagsArgs args)Sets tags to a bucket.default voidsetBucketVersioning(io.minio.SetBucketVersioningArgs args)Sets versioning configuration of a bucket.default voidsetObjectLockConfiguration(io.minio.SetObjectLockConfigurationArgs args)Sets default object retention in a bucket.default voidsetObjectRetention(io.minio.SetObjectRetentionArgs args)Sets retention configuration to an object.default voidsetObjectTags(io.minio.SetObjectTagsArgs args)Sets tags to an object.default io.minio.StatObjectResponsestatObject(io.minio.StatObjectArgs args)Gets information of an object.default io.minio.ObjectWriteResponseuploadObject(io.minio.UploadObjectArgs args, DeleteMode deleteMode)Uploads data from a file to an object.
-
-
-
Method Detail
-
execute
<T> T execute(MinioClientCallback<T> callback)
Execute minio callback.- Type Parameters:
T- the type of the result- Parameters:
callback- the callback- Returns:
- the result
-
listBuckets
default List<io.minio.messages.Bucket> listBuckets()
Lists bucket information of all buckets.Example:
List<Bucket> bucketList = minioOperations.listBuckets(); for (Bucket bucket : bucketList) { System.out.println(bucket.creationDate() + ", " + bucket.name()); }- Returns:
- list of bucket information
-
listBuckets
default List<io.minio.messages.Bucket> listBuckets(io.minio.ListBucketsArgs args)
Lists bucket information of all buckets.Example:
List<Bucket> bucketList = minioClient.listBuckets(ListBucketsArgs.builder().extraHeaders(headers).build()); for (Bucket bucket : bucketList) { System.out.println(bucket.creationDate() + ", " + bucket.name()); }*- Parameters:
args- the list buckets arguments- Returns:
- list of bucket information
-
bucketExists
default boolean bucketExists(io.minio.BucketExistsArgs args)
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- the bucket exists arguments- Returns:
- true if the bucket exists
-
makeBucket
default void makeBucket(io.minio.MakeBucketArgs args)
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
-
removeBucket
default void removeBucket(io.minio.RemoveBucketArgs args)
Removes an empty bucket using arguments.Example:
minioClient.removeBucket(RemoveBucketArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- the remove bucket arguments
-
getBucketEncryption
default io.minio.messages.SseConfiguration getBucketEncryption(io.minio.GetBucketEncryptionArgs args)
Gets encryption configuration of a bucket.Example:
SseConfiguration config = minioClient.getBucketEncryption( GetBucketEncryptionArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- get bucket encryption arguments- Returns:
- server -side encryption configuration
-
setBucketEncryption
default void setBucketEncryption(io.minio.SetBucketEncryptionArgs args)
Sets encryption configuration of a bucket.Example:
minioClient.setBucketEncryption( SetBucketEncryptionArgs.builder().bucket("my-bucketname").config(config).build());*- Parameters:
args- bucket encryption arguments
-
deleteBucketEncryption
default void deleteBucketEncryption(io.minio.DeleteBucketEncryptionArgs args)
Deletes encryption configuration of a bucket.Example:
minioClient.deleteBucketEncryption( DeleteBucketEncryptionArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- delete bucket encryption arguments
-
getBucketLifecycle
default Optional<io.minio.messages.LifecycleConfiguration> getBucketLifecycle(io.minio.GetBucketLifecycleArgs args)
Gets lifecycle configuration of a bucket.Example:
LifecycleConfiguration config = minioClient.getBucketLifecycle( GetBucketLifecycleArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- get bucket lifecycle arguments- Returns:
- the lifecycle configuration
-
setBucketLifecycle
default void setBucketLifecycle(io.minio.SetBucketLifecycleArgs args)
Sets lifecycle configuration to a bucket.Example:
List<LifecycleRule> rules = new LinkedList<>(); 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- set bucket lifecycle arguments
-
deleteBucketLifecycle
default void deleteBucketLifecycle(io.minio.DeleteBucketLifecycleArgs args)
Deletes lifecycle configuration of a bucket.Example:
deleteBucketLifecycle(DeleteBucketLifecycleArgs.builder().bucket("my-bucketname").build());*- Parameters:
args-DeleteBucketLifecycleArgsobject.
-
getBucketNotification
default io.minio.messages.NotificationConfiguration getBucketNotification(io.minio.GetBucketNotificationArgs args)
Gets notification configuration of a bucket.Example:
NotificationConfiguration config = minioClient.getBucketNotification( GetBucketNotificationArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- get bucket notification arguments- Returns:
- the notification configuration
-
setBucketNotification
default void setBucketNotification(io.minio.SetBucketNotificationArgs args)
Sets notification configuration to a bucket.Example:
List<EventType> eventList = new LinkedList<>(); 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 LinkedList<>(); queueConfigurationList.add(queueConfiguration); NotificationConfiguration config = new NotificationConfiguration(); config.setQueueConfigurationList(queueConfigurationList); minioClient.setBucketNotification( SetBucketNotificationArgs.builder().bucket("my-bucketname").config(config).build());*- Parameters:
args- set bucket notification arguments
-
deleteBucketNotification
default void deleteBucketNotification(io.minio.DeleteBucketNotificationArgs args)
Deletes notification configuration of a bucket.Example:
minioClient.deleteBucketNotification( DeleteBucketNotificationArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- delete bucket notification arguments
-
listenBucketNotification
default io.minio.CloseableIterator<io.minio.Result<io.minio.messages.NotificationRecords>> listenBucketNotification(io.minio.ListenBucketNotificationArgs args)
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- the listen bucket notification arguments- Returns:
- lazy closable iterator contains event records
-
getBucketPolicy
default String getBucketPolicy(io.minio.GetBucketPolicyArgs args)
Gets bucket policy configuration of a bucket.Example:
String config = minioClient.getBucketPolicy(GetBucketPolicyArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- get bucket policy arguments- Returns:
- bucket policy configuration as JSON string
-
setBucketPolicy
default void setBucketPolicy(io.minio.SetBucketPolicyArgs args)
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- set bucket policy arguments
-
deleteBucketPolicy
default void deleteBucketPolicy(io.minio.DeleteBucketPolicyArgs args)
Deletes bucket policy configuration to a bucket.Example:
minioClient.deleteBucketPolicy(DeleteBucketPolicyArgs.builder().bucket("my-bucketname"));*- Parameters:
args- delete bucket policy arguments
-
getBucketReplication
default Optional<io.minio.messages.ReplicationConfiguration> getBucketReplication(io.minio.GetBucketReplicationArgs args)
Gets bucket replication configuration of a bucket.Example:
ReplicationConfiguration config = minioClient.getBucketReplication( GetBucketReplicationArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- get bucket replication arguments- Returns:
- the replication configuration
-
setBucketReplication
default void setBucketReplication(io.minio.SetBucketReplicationArgs args)
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 LinkedList<>(); rules.add(rule); ReplicationConfiguration config = new ReplicationConfiguration("REPLACE-WITH-ACTUAL-ROLE", rules); minioClient.setBucketReplication( SetBucketReplicationArgs.builder().bucket("my-bucketname").config(config).build());*- Parameters:
args- set bucket replication arguments
-
deleteBucketReplication
default void deleteBucketReplication(io.minio.DeleteBucketReplicationArgs args)
Deletes bucket replication configuration from a bucket.Example:
minioClient.deleteBucketReplication( DeleteBucketReplicationArgs.builder().bucket("my-bucketname"));*- Parameters:
args- delete bucket replication arguments
-
getBucketTags
default io.minio.messages.Tags getBucketTags(io.minio.GetBucketTagsArgs args)
Gets tags of a bucket.Example:
Tags tags = minioClient.getBucketTags(GetBucketTagsArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- get bucket tags arguments- Returns:
- the tags
-
setBucketTags
default void setBucketTags(io.minio.SetBucketTagsArgs args)
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- the set bucket tags arguments
-
deleteBucketTags
default void deleteBucketTags(io.minio.DeleteBucketTagsArgs args)
Deletes tags of a bucket.Example:
minioClient.deleteBucketTags(DeleteBucketTagsArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- the delete bucket tags arguments
-
getBucketVersioning
default io.minio.messages.VersioningConfiguration getBucketVersioning(io.minio.GetBucketVersioningArgs args)
Gets versioning configuration of a bucket.Example:
VersioningConfiguration config = minioClient.getBucketVersioning( GetBucketVersioningArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- get bucket version arguments- Returns:
- the versioning configuration.
-
setBucketVersioning
default void setBucketVersioning(io.minio.SetBucketVersioningArgs args)
Sets versioning configuration of a bucket.Example:
minioClient.setBucketVersioning( SetBucketVersioningArgs.builder().bucket("my-bucketname").config(config).build());*- Parameters:
args- set bucket versioning arguments
-
getObjectLockConfiguration
default io.minio.messages.ObjectLockConfiguration getObjectLockConfiguration(io.minio.GetObjectLockConfigurationArgs args)
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- get object retention configuration arguments- Returns:
- the default retention configuration
-
setObjectLockConfiguration
default void setObjectLockConfiguration(io.minio.SetObjectLockConfigurationArgs args)
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- the default object retention configuration arguments
-
deleteObjectLockConfiguration
default void deleteObjectLockConfiguration(io.minio.DeleteObjectLockConfigurationArgs args)
Deletes default object retention in a bucket.Example:
minioClient.deleteObjectLockConfiguration( DeleteObjectLockConfigurationArgs.builder().bucket("my-bucketname").build());*- Parameters:
args- delete object retention configuration arguments
-
listObjects
default Iterable<io.minio.Result<io.minio.messages.Item>> listObjects(io.minio.ListObjectsArgs args)
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 those 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 those 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- list objects arguments- Returns:
- lazy iterator contains object information
-
putObject
default io.minio.ObjectWriteResponse putObject(io.minio.PutObjectArgs args)
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- put object arguments- Returns:
- the object write response
-
uploadObject
default io.minio.ObjectWriteResponse uploadObject(io.minio.UploadObjectArgs args, DeleteMode deleteMode)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- upload object argumentsdeleteMode- delete mode- Returns:
- the object write response
-
downloadObject
default void downloadObject(io.minio.DownloadObjectArgs args)
Downloads data of a SSE-C encrypted object to file.Example:
minioClient.downloadObject( GetObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .ssec(ssec) .fileName("my-filename") .build());*- Parameters:
args- download object arguments
-
getPresignedObjectUrl
default String getPresignedObjectUrl(io.minio.GetPresignedObjectUrlArgs args)
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(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(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(Method.GET) .bucket("my-bucketname") .object("my-objectname") .expiry(2, TimeUnit.HOURS) .build()); System.out.println(url);*- Parameters:
args- get pre-signed object url arguments- Returns:
- the pre-signed URL
-
getPresignedPostFormData
default Map<String,String> getPresignedPostFormData(io.minio.PostPolicy policy)
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:
- contains form-data to upload an object using POST method
-
statObject
default io.minio.StatObjectResponse statObject(io.minio.StatObjectArgs args)
Gets information of an object.Example:
// Get information of an object. ObjectStat objectStat = minioClient.statObject( StatObjectArgs.builder().bucket("my-bucketname").object("my-objectname").build()); // Get information of SSE-C encrypted object. ObjectStat objectStat = minioClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .ssec(ssec) .build()); // Get information of a versioned object. ObjectStat objectStat = minioClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("version-id") .build()); // Get information of a SSE-C encrypted versioned object. ObjectStat objectStat = minioClient.statObject( StatObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("version-id") .ssec(ssec) .build());*- Parameters:
args- status object arguments- Returns:
- populated object information and metadata
-
objectExists
default boolean objectExists(io.minio.StatObjectArgs args)
Check whether an object exists or not.- Parameters:
args- status object arguments- Returns:
trueif the object exists, otherwisefalse
-
getObject
default InputStream getObject(io.minio.GetObjectArgs args)
Gets data from offset to length of a SSE-C encrypted object. ReturnedInputStreammust be closed after use to release network resources.Example:
try (InputStream stream = minioClient.getObject( GetObjectArgs.builder() .bucket("my-bucketname") .object("my-objectname") .offset(offset) .length(len) .ssec(ssec) .build() ) { // Read data from stream }*- Parameters:
args- the get object arguments- Returns:
- the input stream
-
selectObjectContent
default io.minio.SelectResponseStream selectObjectContent(io.minio.SelectObjectContentArgs args)
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- the select object content arguments- Returns:
- the select response stream
-
removeObject
default void removeObject(io.minio.RemoveObjectArgs args)
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- remove object arguments
-
removeObjects
default Iterable<io.minio.Result<io.minio.messages.DeleteError>> removeObjects(io.minio.RemoveObjectsArgs args)
Removes multiple objects lazily. Its required to iterate the returned Iterable to perform removal.Example:
List<DeleteObject> objects = new LinkedList<>(); objects.add(new DeleteObject("my-objectname1")); objects.add(new DeleteObject("my-objectname2")); objects.add(new DeleteObject("my-objectname3")); Iterable<Result<DeleteError>> results = minioClient.removeObjects( RemoveObjectsArgs.builder().bucket("my-bucketname").objects(objects).build()); for (Result<DeleteError> result : results) { DeleteError error = errorResult.get(); System.out.println( "Error in deleting object " + error.objectName() + "; " + error.message()); }*- Parameters:
args- the objects to remove- Returns:
- lazy iterator contains object removal status
-
composeObject
default io.minio.ObjectWriteResponse composeObject(io.minio.ComposeObjectArgs args)
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());*- Parameters:
args- compose object arguments- Returns:
- the object write response
-
copyObject
default io.minio.ObjectWriteResponse copyObject(io.minio.CopyObjectArgs args)
Creates an object by server-side copying data from another object.- Parameters:
args- copy object arguments- Returns:
- the object write response
-
getObjectRetention
default io.minio.messages.Retention getObjectRetention(io.minio.GetObjectRetentionArgs args)
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- get object retention arguments- Returns:
- object retention configuration
-
setObjectRetention
default void setObjectRetention(io.minio.SetObjectRetentionArgs args)
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- set object retention arguments
-
getObjectTags
default io.minio.messages.Tags getObjectTags(io.minio.GetObjectTagsArgs args)
Gets tags of an object.Example:
Tags tags = minioClient.getObjectTags( GetObjectTagsArgs.builder().bucket("my-bucketname").object("my-objectname").build());*- Parameters:
args- get object tags arguments- Returns:
- the tags
-
setObjectTags
default void setObjectTags(io.minio.SetObjectTagsArgs args)
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- set object tags arguments
-
deleteObjectTags
default void deleteObjectTags(io.minio.DeleteObjectTagsArgs args)
Deletes tags of an object.Example:
minioClient.deleteObjectTags( DeleteObjectTags.builder().bucket("my-bucketname").object("my-objectname").build());*- Parameters:
args- delete object tags arguments
-
isObjectLegalHoldEnabled
default boolean isObjectLegalHoldEnabled(io.minio.IsObjectLegalHoldEnabledArgs args)
Returns true if legal hold is enabled on an object.Example:
boolean 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"); }*- Parameters:
args- is object legel hold enabled arguments- Returns:
- true if legal hold is enabled
-
enableObjectLegalHold
default void enableObjectLegalHold(io.minio.EnableObjectLegalHoldArgs args)
Enables legal hold on an object.Example:
minioClient.enableObjectLegalHold( EnableObjectLegalHoldArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build());*- Parameters:
args- enable object legal hold arguments
-
disableObjectLegalHold
default void disableObjectLegalHold(io.minio.DisableObjectLegalHoldArgs args)
Disables legal hold on an object.Example:
minioClient.disableObjectLegalHold( DisableObjectLegalHoldArgs.builder() .bucket("my-bucketname") .object("my-objectname") .versionId("object-versionId") .build());*- Parameters:
args- disable object legal hold arguments
-
-