文件

Java 客户端 API 參考 Slack

建立 MinIO 客户端。

MinIO

MinioClient minioClient =
    MinioClient.builder()
        .endpoint("https://play.min.io")
        .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
        .build();

AWS S3

MinioClient minioClient =
    MinioClient.builder()
        .endpoint("https://s3.amazonaws.com")
        .credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
        .build();

儲存桶操作

物件操作

bucketExists

composeObject

deleteBucketEncryption

copyObject

deleteBucketLifecycle

deleteObjectTags

deleteBucketNotification

disableObjectLegalHold

deleteBucketPolicy

downloadObject

deleteBucketReplication

enableObjectLegalHold

deleteBucketTags

getObject

deleteObjectLockConfiguration

getObjectRetention

getBucketEncryption

getObjectTags

getBucketLifecycle

getPresignedObjectUrl

getBucketNotification

getPresignedPostFormData

getBucketPolicy

isObjectLegalHoldEnabled

getBucketReplication

listObjects

getBucketTags

putObject

getBucketVersioning

removeObject

getObjectLockConfiguration

removeObjects

listBuckets

restoreObject

listenBucketNotification

selectObjectContent

makeBucket

setObjectRetention

removeBucket

setObjectTags

setBucketEncryption

statObject

setBucketLifecycle

uploadObject

setBucketNotification

uploadSnowballObjects

setBucketPolicy

setBucketReplication

setBucketTags

setBucketVersioning

setObjectLockConfiguration

1. MinIO 客户端建立器

MinIO 客户端建立器用於建立 MinIO 客户端。建立器具有以下方法來接受引數。

方法

描述

endpoint()

接受端點作為字串、URL 或 okhttp3.HttpUrl 物件,並可選擇接受連接埠號碼和啟用安全 (TLS) 連接的標誌。

端點作為字串的格式如下

https://s3.amazonaws.com

https://play.min.io

https://play.min.io:9000

localhost

play.min.io

credentials()

接受 S3 服務中帳户的存取金鑰 (又稱使用者 ID) 和秘密金鑰 (又稱密碼)。

region()

接受 S3 服務的區域名稱。如果指定,所有操作都會使用此區域,否則會針對每個儲存桶探查區域。

httpClient()

自訂 HTTP 客户端以覆蓋預設值。

範例

MinIO

// 1. Create client to S3 service 'play.min.io' at port 443 with TLS security
// for anonymous access.
MinioClient minioClient = MinioClient.builder().endpoint("https://play.min.io").build();

// 2. Create client to S3 service 'play.min.io' at port 443 with TLS security
// using URL object for anonymous access.
MinioClient minioClient = MinioClient.builder().endpoint(new URL("https://play.min.io")).build();

// 3. Create client to S3 service 'play.min.io' at port 9000 with TLS security
// using okhttp3.HttpUrl object for anonymous access.
MinioClient minioClient =
    MinioClient.builder().endpoint(HttpUrl.parse("https://play.min.io:9000")).build();

// 4. Create client to S3 service 'play.min.io' at port 443 with TLS security
// for authenticated access.
MinioClient minioClient =
    MinioClient.builder()
	    .endpoint("https://play.min.io")
		.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
		.build();

// 5. Create client to S3 service 'play.min.io' at port 9000 with non-TLS security
// for authenticated access.
MinioClient minioClient =
    MinioClient.builder()
	    .endpoint("play.min.io", 9000, false)
	    .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
		.build();

// 6. Create client to S3 service 'play.min.io' at port 9000 with TLS security
// for authenticated access.
MinioClient minioClient =
    MinioClient.builder()
	    .endpoint("play.min.io", 9000, true)
		.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
		.build();

// 7. Create client to S3 service 'play.min.io' at port 443 with TLS security
// and region 'us-west-1' for authenticated access.
MinioClient minioClient =
    MinioClient.builder()
	    .endpoint(new URL("https://play.min.io"))
		.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
		.region("us-west-1")
		.build();

// 8. Create client to S3 service 'play.min.io' at port 9000 with TLS security,
// region 'eu-east-1' and custom HTTP client for authenticated access.
MinioClient minioClient =
    MinioClient.builder()
	    .endpoint("https://play.min.io:9000")
		.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
		.region("eu-east-1")
		.httpClient(customHttpClient)
		.build();

AWS S3

// 1. Create client to S3 service 's3.amazonaws.com' at port 443 with TLS security
// for anonymous access.
MinioClient s3Client = MinioClient.builder().endpoint("https://s3.amazonaws.com").build();

// 2. Create client to S3 service 's3.amazonaws.com' at port 443 with TLS security
// using URL object for anonymous access.
MinioClient s3Client = MinioClient.builder().endpoint(new URL("https://s3.amazonaws.com")).build();

// 3. Create client to S3 service 's3.amazonaws.com' at port 9000 with TLS security
// using okhttp3.HttpUrl object for anonymous access.
MinioClient s3Client =
    MinioClient.builder().endpoint(HttpUrl.parse("https://s3.amazonaws.com")).build();

// 4. Create client to S3 service 's3.amazonaws.com' at port 80 with TLS security
// for authenticated access.
MinioClient s3Client =
    MinioClient.builder()
	    .endpoint("s3.amazonaws.com")
		.credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
		.build();

// 5. Create client to S3 service 's3.amazonaws.com' at port 443 with non-TLS security
// for authenticated access.
MinioClient s3Client =
    MinioClient.builder()
        .endpoint("s3.amazonaws.com", 433, false)
		.credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
		.build();

// 6. Create client to S3 service 's3.amazonaws.com' at port 80 with non-TLS security
// for authenticated access.
MinioClient s3Client =
    MinioClient.builder()
	    .endpoint("s3.amazonaws.com", 80, false)
        .credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
		.build();

// 7. Create client to S3 service 's3.amazonaws.com' at port 80 with TLS security
// for authenticated access.
MinioClient s3Client =
    MinioClient.builder()
	    .endpoint("s3.amazonaws.com", 80, true)
        .credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
		.build();

// 8. Create client to S3 service 's3.amazonaws.com' at port 80 with non-TLS security
// and region 'us-west-1' for authenticated access.
MinioClient s3Client =
    MinioClient.builder()
	    .endpoint("s3.amazonaws.com", 80, false)
        .credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
		.region("us-west-1")
		.build();

// 9. Create client to S3 service 's3.amazonaws.com' at port 443 with TLS security
// and region 'eu-west-2' for authenticated access.
MinioClient s3Client =
    MinioClient.builder()
	    .endpoint("s3.amazonaws.com", 443, true)
		.credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY").
		.region("eu-west-2")
		.build();

// 10. Create client to S3 service 's3.amazonaws.com' at port 443 with TLS security,
// region 'eu-central-1' and custom HTTP client for authenticated access.
MinioClient s3Client =
    MinioClient.builder()
	    .endpoint("s3.amazonaws.com", 443, true)
        .credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
		.region("eu-central-1")
		.httpClient(customHttpClient)
		.build();

常見例外

所有 API 除了特定於 API 的例外之外,還會拋出以下例外。

例外

原因

ErrorResponseException

拋出以指示 S3 服務傳回錯誤回應。

IllegalArgumentException

拋出以指示傳遞了無效的引數。

InsufficientDataException

拋出以指示 InputStream 中沒有足夠的可用資料。

InternalException

拋出以指示內部程式庫錯誤。

InvalidKeyException

拋出以指示缺少 HMAC SHA-256 程式庫。

InvalidResponseException

拋出以指示 S3 服務傳回無效或沒有錯誤回應。

IOException

拋出以指示 S3 操作上的 I/O 錯誤。

NoSuchAlgorithmException

拋出以指示缺少 MD5 或 SHA-256 摘要程式庫。

ServerException

拋出以指示 HTTP 伺服器錯誤。

XmlParserException

拋出以指示 XML 解析錯誤。

2. 儲存桶操作

bucketExists(BucketExistsArgs args)

public boolean bucketExists(BucketExistsArgs args) [Javadoc]

檢查儲存桶是否存在。

參數

參數

類型

描述

bucketName

BucketExistsArgs

引數。

返回值

boolean - 如果儲存桶存在,則返回 True。

範例

// Check whether 'my-bucketname' exists or not.
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");
}

deleteBucketEncryption(DeleteBucketEncryptionArgs args)

private void deleteBucketEncryption(DeleteBucketEncryptionArgs args) [Javadoc]

刪除儲存桶的加密配置。

參數

參數

類型

描述

args

DeleteBucketEncryptionArgs

引數。

範例

minioClient.deleteBucketEncryption(
    DeleteBucketEncryptionArgs.builder().bucket("my-bucketname").build());

deleteBucketLifecycle(DeleteBucketLifecycleArgs args)

private void deleteBucketLifecycle(DeleteBucketLifecycleArgs args) [Javadoc]

刪除儲存桶的生命週期配置。

參數

參數

類型

描述

args

DeleteBucketLifecycleArgs

引數。

範例

minioClient.deleteBucketLifecycle(
    DeleteBucketLifecycleArgs.builder().bucket("my-bucketname").build());

deleteBucketTags(DeleteBucketTagsArgs args)

private void deleteBucketTags(DeleteBucketTagsArgs args) [Javadoc]

刪除儲存桶的標籤。

參數

參數

類型

描述

args

DeleteBucketTagsArgs

引數。

範例

minioClient.deleteBucketTags(DeleteBucketTagsArgs.builder().bucket("my-bucketname").build());

deleteBucketPolicy(DeleteBucketPolicyArgs args)

private void deleteBucketPolicy(DeleteBucketPolicyArgs args) [Javadoc]

刪除儲存桶的存取策略配置。

參數

參數

類型

描述

args

DeleteBucketPolicyArgs

引數。

範例

minioClient.deleteBucketPolicy(DeleteBucketPolicyArgs.builder().bucket("my-bucketname").build());

deleteBucketReplication(DeleteBucketReplicationArgs args)

private void deleteBucketReplication(DeleteBucketReplicationArgs args) [Javadoc]

刪除儲存桶的複寫配置。

參數

參數

類型

描述

args

DeleteBucketReplicationArgs

引數。

範例

minioClient.deleteBucketReplication(
    DeleteBucketReplicationArgs.builder().bucket("my-bucketname").build());

deleteBucketNotification(DeleteBucketNotificationArgs args)

public void deleteBucketNotification(DeleteBucketNotificationArgs args) [Javadoc]

刪除儲存桶的通知配置。

參數

參數

類型

描述

args

DeleteBucketNotificationArgs

引數。

範例

minioClient.deleteBucketNotification(
    DeleteBucketNotificationArgs.builder().bucket("my-bucketname").build());

deleteObjectLockConfiguration(DeleteObjectLockConfigurationArgs args)

public void deleteObjectLockConfiguration(DeleteObjectLockConfigurationArgs args) [Javadoc]

刪除儲存桶中的物件鎖定配置。

參數

參數

類型

描述

args

DeleteObjectLockConfigurationArgs

引數。

範例

minioClient.deleteObjectLockConfiguration(
    DeleteObjectLockConfigurationArgs.builder().bucket("my-bucketname").build());

getBucketEncryption(GetBucketEncryptionArgs args)

public SseConfiguration getBucketEncryption(GetBucketEncryptionArgs args) [Javadoc]

取得儲存桶的加密配置。

參數

參數

類型

描述

args

GetBucketEncryptionArgs

引數。

返回值

SseConfiguration - 伺服器端加密配置。

範例

SseConfiguration config =
    minioClient.getBucketEncryption(
        GetBucketEncryptionArgs.builder().bucket("my-bucketname").build());

getBucketLifecycle(GetBucketLifecycleArgs args)

public LifecycleConfiguration getBucketLifecycle(GetBucketLifecycleArgs args) [Javadoc]

取得儲存桶的生命週期配置。

參數

參數

類型

描述

args

GetBucketLifecycleArgs

引數。

返回值

LifecycleConfiguration - 生命週期配置。

範例

LifecycleConfiguration config =
    minioClient.getBucketLifecycle(
	    GetBucketLifecycleArgs.builder().bucket("my-bucketname").build());
System.out.println("Lifecycle configuration: " + config);

getBucketNotification(GetBucketNotificationArgs args)

public NotificationConfiguration getBucketNotification(GetBucketNotificationArgs args) [Javadoc]

取得儲存桶的通知配置。

參數

參數

類型

描述

args

GetBucketNotificationArgs

引數。

返回值

NotificationConfiguration - 通知配置。

範例

NotificationConfiguration config =
    minioClient.getBucketNotification(
	    GetBucketNotificationArgs.builder().bucket("my-bucketname").build());

getBucketPolicy(GetBucketPolicyArgs args)

public String getBucketPolicy(GetBucketPolicyArgs args) [Javadoc]

取得儲存桶的存取策略配置。

參數

參數

類型

描述

args

GetBucketPolicyArgs

引數。

返回值

String - 以 JSON 字串表示的儲存桶存取策略配置。

範例

String config =
    minioClient.getBucketPolicy(GetBucketPolicyArgs.builder().bucket("my-bucketname").build());

getBucketReplication(GetBucketReplicationArgs args)

public ReplicationConfiguration getBucketReplication(GetBucketReplicationArgs args) [Javadoc]

取得儲存桶的複寫配置。

參數

參數

類型

描述

args

GetBucketReplicationArgs

引數。

返回值

ReplicationConfiguration - 儲存桶複寫配置。

範例

ReplicationConfiguration config =
    minioClient.getBucketReplication(
	    GetBucketReplicationArgs.builder().bucket("my-bucketname").build());

getBucketTags(GetBucketTagsArgs args)

public Tags getBucketTags(GetBucketTagsArgs args) [Javadoc]

取得儲存桶的標籤。

參數

參數

類型

描述

args

GetBucketTagsArgs

引數。

返回值

Tags - 標籤。

範例

Tags tags = minioClient.getBucketTags(GetBucketTagsArgs.builder().bucket("my-bucketname").build());

getBucketVersioning(GetBucketVersioningArgs args)

public VersioningConfiguration getBucketVersioning(GetBucketVersioningArgs args) [Javadoc]

取得儲存桶的版本控制配置。

參數

參數

類型

描述

args

GetBucketVersioningArgs

引數。

返回值

VersioningConfiguration - 版本控制配置。

範例

VersioningConfiguration config =
    minioClient.getBucketVersioning(
        GetBucketVersioningArgs.builder().bucket("my-bucketname").build());

getObjectLockConfiguration(GetObjectLockConfigurationArgs args)

public ObjectLockConfiguration getObjectLockConfiguration(GetObjectLockConfigurationArgs args) [Javadoc]

取得儲存桶中的物件鎖定配置。

參數

參數

類型

描述

args

GetObjectLockConfigurationArgs

引數。

返回值

ObjectLockConfiguration - 預設保留配置。

範例

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());

listBuckets()

public List<Bucket> listBuckets() [Javadoc]

列出所有儲存桶的儲存桶資訊。

返回值

List<Bucket> - 儲存桶資訊的列表。

範例

List<Bucket> bucketList = minioClient.listBuckets();
for (Bucket bucket : bucketList) {
  System.out.println(bucket.creationDate() + ", " + bucket.name());
}

listBuckets(ListBucketsArgs args)

public List<Bucket> listBuckets(ListBucketsArgs args) [Javadoc]

列出所有儲存桶的儲存桶資訊。

參數

參數

類型

描述

args

ListBucketsArgs

引數。

返回值

List<Bucket> - 儲存桶資訊的列表。

範例

List<Bucket> bucketList =
    minioClient.listBuckets(ListBuckets.builder().extraHeaders(headers).build());
for (Bucket bucket : bucketList) {
  System.out.println(bucket.creationDate() + ", " + bucket.name());
}

listenBucketNotification(ListenBucketNotificationArgs args)

public CloseableIterator<Result<NotificationRecords>> listenBucketNotification(ListenBucketNotificationArgs args) [Javadoc]

監聽儲存桶的物件前綴和後綴事件。返回的可關閉迭代器是延遲求值的,因此需要迭代才能取得新記錄,並且必須與 try-with-resource 一起使用以釋放底層的網路資源。

參數

參數

類型

描述

args

ListenBucketNotificationArgs

引數。

返回值

CloseableIterator<Result<NotificationRecords>> - 包含事件記錄的延遲可關閉迭代器。

範例

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());
    }
  }
}

listObjects(ListObjectsArgs args)

public Iterable<Result<Item>> listObjects(ListObjectsArgs args) [Javadoc]

列出儲存桶的物件資訊。

參數

參數

類型

描述

args

ListObjectsArgs

列出物件的引數

返回值

Iterable<Result<Item>> - 包含物件資訊的延遲迭代器。

範例

// 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());

makeBucket(MakeBucketArgs args)

public void makeBucket(MakeBucketArgs args) [Javadoc]

建立具有指定區域和啟用物件鎖定功能的儲存桶。

參數

參數

類型

描述

args

MakeBucketArgs

建立儲存桶的引數

範例

// 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());

removeBucket(RemoveBucketArgs args)

public void removeBucket(RemoveBucketArgs args) [Javadoc]

移除一個空的儲存桶。

參數

參數

類型

描述

args

RemoveBucketArgs

引數。

範例

minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build());

setBucketEncryption(SetBucketEncryptionArgs args)

public void setBucketEncryption(SetBucketEncryptionArgs args) [Javadoc]

設定儲存桶的加密配置。

參數

參數

類型

描述

args

SetBucketEncryptionArgs

引數。

範例

minioClient.setBucketEncryption(
    SetBucketEncryptionArgs.builder().bucket("my-bucketname").config(config).build());

setBucketLifecycle(SetBucketLifecycleArgs args)

public void setBucketLifecycle(SetBucketLifecycleArgs args) [Javadoc]

設定儲存貯體 (bucket) 的生命週期組態。

參數

參數

類型

描述

args

SetBucketLifecycleArgs

引數。

範例

List<LifecycleRule> rules = new LinkedList<>();
rules.add(
    new LifecycleRule(
        Status.ENABLED,
        null,
        null,
        new RuleFilter("documents/"),
        "rule1",
        null,
        null,
        new Transition((ZonedDateTime) null, 30, "GLACIER")));
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());

setBucketNotification(SetBucketNotificationArgs args)

public void setBucketNotification(SetBucketNotificationArgs args) [Javadoc]

設定儲存貯體的通知組態。

參數

參數

類型

描述

args

SetBucketNotificationArgs

引數。

範例

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());

setBucketPolicy(SetBucketPolicyArgs args)

public void setBucketPolicy(SetBucketPolicyArgs args) [Javadoc]

設定儲存貯體的政策組態。

參數

參數

類型

描述

args

SetBucketPolicyArgs

引數。

範例

// 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());

setBucketReplication(SetBucketReplicationArgs args)

public void setBucketReplication(SetBucketReplicationArgs args) [Javadoc]

設定儲存貯體的複寫組態。

參數

參數

類型

描述

args

SetBucketReplicationArgs

引數。

範例

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());

setBucketTags(SetBucketTagsArgs args)

public void setBucketTags(SetBucketTagsArgs args) [Javadoc]

設定儲存貯體的標籤。

參數

參數

類型

描述

args

SetBucketTagsArgs

引數。

範例

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());

setBucketVersioning(SetBucketVersioningArgs args)

public void setBucketVersioning(SetBucketVersioningArgs args) [Javadoc]

設定儲存貯體的版本控制組態。

參數

參數

類型

描述

args

SetBucketVersioningArgs

引數。

範例

minioClient.setBucketVersioning(
    SetBucketVersioningArgs.builder().bucket("my-bucketname").config(config).build());

setObjectLockConfiguration(SetObjectLockConfigurationArgs args)

public void setObjectLockConfiguration(SetObjectLockConfigurationArgs args) [Javadoc]

設定儲存貯體的物件鎖定組態。

參數

參數

類型

描述

args

SetObjectLockConfigurationArgs

引數。

範例

ObjectLockConfiguration config =
    new ObjectLockConfiguration(RetentionMode.COMPLIANCE, new RetentionDurationDays(100));
minioClient.setObjectLockConfiguration(
    SetObjectLockConfigurationArgs.builder().bucket("my-bucketname").config(config).build());

3. 物件操作

composeObject(ComposeObjectArgs args)

public ObjectWriteResponse composeObject(ComposeObjectArgs args) [Javadoc]

使用伺服器端複製,從不同來源物件組合資料以建立物件。

參數

參數

類型

描述

args

ComposeObjectArgs

引數。

返回值

ObjectWriteResponse - 包含已建立物件的資訊。

範例

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());

copyObject(CopyObjectArgs args)

public ObjectWriteResponse copyObject(CopyObjectArgs args) [Javadoc]

透過從另一個物件伺服器端複製資料來建立物件。

參數

參數

類型

描述

args

CopyObjectArgs

引數。

返回值

ObjectWriteResponse - 包含已建立物件的資訊。

範例

// 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());

deleteObjectTags(DeleteObjectTagsArgs args)

private void deleteObjectTags(DeleteObjectTagsArgs args) [Javadoc]

刪除物件的標籤。

參數

參數

類型

描述

args

DeleteObjectTagsArgs

引數。

範例

minioClient.deleteObjectTags(
    DeleteObjectArgs.builder().bucket("my-bucketname").object("my-objectname").build());

disableObjectLegalHold(DisableObjectLegalHoldArgs args)

public void disableObjectLegalHold(DisableObjectLegalHoldArgs args) [Javadoc]

停用物件的法律保留。

參數

參數

類型

描述

args

DisableObjectLegalHoldArgs

引數。

範例

// Disables legal hold on an object.
minioClient.disableObjectLegalHold(
    DisableObjectLegalHoldArgs.builder()
        .bucket("my-bucketname")
        .object("my-objectname")
        .build());

enableObjectLegalHold(EnableObjectLegalHoldArgs args)

public void enableObjectLegalHold(EnableObjectLegalHoldArgs args) [Javadoc]

啟用物件的法律保留。

參數

參數

類型

描述

args

EnableObjectLegalHoldArgs

引數。

範例

// Disables legal hold on an object.
minioClient.enableObjectLegalHold(
   EnableObjectLegalHoldArgs.builder()
       .bucket("my-bucketname")
       .object("my-objectname")
       .build());

getObject(GetObjectArgs args)

public InputStream getObject(GetObjectArgs args) [Javadoc]

取得物件的資料。使用後必須關閉傳回的 InputStream 以釋放網路資源。

參數

參數

類型

描述

args

GetObjectArgs

引數。

返回值

InputStream - 包含物件資料。

範例

// get object given the bucket and object name
try (InputStream stream = minioClient.getObject(
  GetObjectArgs.builder()
  .bucket("my-bucketname")
  .object("my-objectname")
  .build())) {
  // Read data from stream
}

// get object data from offset
try (InputStream stream = minioClient.getObject(
  GetObjectArgs.builder()
  .bucket("my-bucketname")
  .object("my-objectname")
  .offset(1024L)
  .build())) {
  // Read data from stream
}

// get object data from offset to length
try (InputStream stream = minioClient.getObject(
  GetObjectArgs.builder()
  .bucket("my-bucketname")
  .object("my-objectname")
  .offset(1024L)
  .length(4096L)
  .build())) {
  // Read data from stream
}

// get data of an SSE-C encrypted object
try (InputStream stream = minioClient.getObject(
  GetObjectArgs.builder()
  .bucket("my-bucketname")
  .object("my-objectname")
  .ssec(ssec)
  .build())) {
  // Read data from stream
}

// get object data from offset to length of an SSE-C encrypted object
try (InputStream stream = minioClient.getObject(
  GetObjectArgs.builder()
  .bucket("my-bucketname")
  .object("my-objectname")
  .offset(1024L)
  .length(4096L)
  .ssec(ssec)
  .build())) {
  // Read data from stream
}

downloadObject(DownloadObjectArgs args)

public void downloadObject(DownloadObjectArgs args) [Javadoc]

將物件的資料下載到檔案。

參數

參數

類型

描述

args

DownloadObjectArgs

引數。

範例

// Download object given the bucket, object name and output file name
minioClient.downloadObject(
  DownloadObjectArgs.builder()
  .bucket("my-bucketname")
  .object("my-objectname")
  .filename("my-object-file")
  .build());

// Download server-side encrypted object in bucket to given file name
minioClient.downloadObject(
  DownloadObjectArgs.builder()
  .bucket("my-bucketname")
  .object("my-objectname")
  .ssec(ssec)
  .filename("my-object-file")
  .build());

getObjectRetention(GetObjectRetentionArgs args)

public Retention getObjectRetention(GetObjectRetentionArgs args) [Javadoc]

取得物件的保留組態。

參數

參數

類型

描述

args

GetObjectRetentionArgs

引數。

返回值

Retention - 物件保留組態。

範例

// Object with version id.
Retention retention =
   minioClient.getObjectRetention(
       GetObjectRetentionArgs.builder()
           .bucket("my-bucketname")
           .object("my-objectname")
           .versionId("object-version-id")
           .build());
System.out.println("mode: " + retention.mode() + "until: " + retention.retainUntilDate());

getObjectTags(GetObjectTagsArgs args)

public Tags getObjectTags(GetObjectTagsArgs args) [Javadoc]

取得物件的標籤。

參數

參數

類型

描述

args

GetObjectTagsArgs

引數。

返回值

Tags - 標籤。

範例

Tags tags = minioClient.getObjectTags(
    GetObjectTagsArgs.builder().bucket("my-bucketname").object("my-objectname").build());

getPresignedObjectUrl(GetPresignedObjectUrlArgs args)

public String getPresignedObjectUrl(GetPresignedObjectUrlArgs args) [Javadoc]

取得物件的預先簽章 URL,用於 HTTP 方法、過期時間和自訂請求參數。

參數

參數

類型

描述

args

GetPresignedObjectUrlArgs

引數。

返回值

String - URL 字串。

範例

// Get presigned URL string to download 'my-objectname' in 'my-bucketname'
// with an expiration of 2 hours.
//
// Additionally also add 'response-content-type' to dynamically set content-type
// for the server response.
Map<String, String> reqParams = new HashMap<String, String>();
reqParams.put("response-content-type", "application/json");

String url =
   minioClient.getPresignedObjectUrl(
       GetPresignedObjectUrlArgs.builder()
           .method(Method.GET)
           .bucket("my-bucketname")
           .object("my-objectname")
           .expiry(2, TimeUnit.HOURS)
           .extraQueryParams(reqParams)
           .build());
System.out.println(url);

// Get presigned URL string to upload 'my-objectname' in 'my-bucketname'
// with an expiration of 1 day.
String url =
   minioClient.getPresignedObjectUrl(
       GetPresignedObjectUrlArgs.builder()
           .method(Method.PUT)
           .bucket("my-bucketname")
           .object("my-objectname")
           .expiry(1, TimeUnit.DAYS)
           .build());
System.out.println(url);

// Get presigned URL string to lookup metadata for 'my-objectname' in 'my-bucketname'
// with an expiration of 2 hours.
//
// Additionally also add 'response-content-type' to dynamically set content-type
// for the server metadata response.
Map<String, String> reqParams = new HashMap<String, String>();
reqParams.put("response-content-type", "application/json");

String url =
   minioClient.getPresignedObjectUrl(
       GetPresignedObjectUrlArgs.builder()
           .method(Method.HEAD)
           .bucket("my-bucketname")
           .object("my-objectname")
           .expiry(2, TimeUnit.HOURS)
           .extraQueryParams(reqParams)
           .build());
System.out.println(url);

isObjectLegalHoldEnabled(IsObjectLegalHoldEnabledArgs args)

public boolean isObjectLegalHoldEnabled(IsObjectLegalHoldEnabledArgs args) [Javadoc]

如果物件啟用法律保留,則傳回 true。

參數

參數

類型

描述

args

IsObjectLegalHoldEnabledArgs

引數。

返回值

boolean - 如果啟用法律保留,則為 True。

範例

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");
}

getPresignedPostFormData(PostPolicy policy)

public Map<String,String> getPresignedPostFormData(PostPolicy policy) [Javadoc]

取得 PostPolicy 的表單資料,以使用 POST 方法上傳其資料。

參數

參數

類型

描述

policy

PostPolicy

物件的 Post policy。

返回值

Map<String, String> - 包含使用 POST 方法上傳物件的表單資料。

範例

// 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");
}

putObject(PutObjectArgs args)

public ObjectWriteResponse putObject(PutObjectArgs args) [Javadoc]

將指定的串流上傳為儲存貯體中的物件。

參數

參數

類型

描述

args

PutObjectArgs

引數。

返回值

ObjectWriteResponse - 包含已建立物件的資訊。

範例

// 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());

uploadObject(UploadObjectArgs args)

public void uploadObject(UploadObjectArgs args) [Javadoc]

將檔案中的內容上傳為儲存貯體中的物件。

參數

參數

類型

描述

args

UploadObjectArgs

引數。

範例

// 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());

uploadSnowballObjects(UploadSnowballObjectsArgs args)

public void uploadSnowballObjects(UploadSnowballObjectsArgs args) [Javadoc]

在單一 put 呼叫中上傳多個物件。做法是建立選擇性壓縮的中繼 TAR 檔案,然後上傳到 S3 服務。

參數

參數

類型

描述

args

UploadSnowballObjectsArgs

引數。

範例

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());

removeObject(RemoveObjectArgs args)

public void removeObject(RemoveObjectArgs args) [Javadoc]

移除物件。

參數

參數

類型

描述

args

RemoveObjectArgs

引數。

範例

// 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());

removeObjects(RemoveObjectsArgs args)

public Iterable<Result<DeleteError>> removeObjects(RemoveObjectsArgs args) [Javadoc]

延遲移除多個物件。需要反覆運算傳回的 Iterable 以執行移除。

參數

參數

類型

描述

args

RemoveObjectsArgs

引數。

返回值

Iterable<Result<DeleteError>> - 包含物件移除狀態的延遲迭代器。

範例

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 = result.get();
  System.out.println(
      "Error in deleting object " + error.objectName() + "; " + error.message());
}

restoreObject(RestoreObjectArgs args)

public void restoreObject(RestoreObjectArgs args) [Javadoc]

還原物件。

參數

參數

類型

描述

args

RestoreObjectArgs

引數。

範例

// 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());

selectObjectContent(SelectObjectContentArgs args)

public SelectResponseStream selectObjectContent(SelectObjectContentArgs args) [Javadoc]

透過 SQL 表達式選取物件內容。

參數

參數

類型

描述

args

SelectObjectContentArgs

引數。

返回值

SelectResponseStream - 包含過濾後的記錄和進度。

範例

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();

setObjectRetention(SetObjectRetentionArgs args)

public void setObjectLockRetention(SetObjectRetentionArgs) [Javadoc]

設定物件的保留配置。

參數

參數

類型

描述

args

SetObjectRetentionArgs

引數。

範例

Retention retention = new Retention(RetentionMode.COMPLIANCE, ZonedDateTime.now().plusYears(1));
minioClient.setObjectRetention(
    SetObjectRetentionArgs.builder()
        .bucket("my-bucketname")
        .object("my-objectname")
        .config(retention)
        .bypassGovernanceMode(true)
        .build());

setObjectTags(SetObjectTagsArgs args)

public void setObjectTags(SetObjectTagsArgs args) [Javadoc]

設定物件的標籤。

參數

參數

類型

描述

args

SetObjectTagsArgs

引數。

範例

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());

statObject(StatObjectArgs args)

public ObjectStat statObject(StatObjectArgs args) [Javadoc]

取得物件的資訊和元數據。

參數

參數

類型

描述

args

StatObjectArgs

引數。

返回值

ObjectStat - 包含物件資訊和元數據。

範例

// 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());

5. 進一步探索