.NET 用戶端 API 參考 
初始化 MinIO 用戶端物件。
MinIO
IMinioClient minioClient = new MinioClient()
.WithEndpoint("play.min.io")
.WithCredentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
.WithSSL()
.Build();
AWS S3
IIMinioClient minioClient = new MinioClient()
.WithEndpoint("s3.amazonaws.com")
.WithCredentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
.WithSSL()
.Build();
儲存貯體操作 |
物件操作 |
預先簽章操作 |
儲存貯體策略操作 |
---|---|---|---|
1. 建構函式
|
使用給定的端點建立 MinIO 用戶端物件。AccessKey、secretKey、region 和 sessionToken 是選擇性參數,可以省略以進行匿名存取。 |
用戶端物件預設使用 Http 存取。若要使用 Https,請將方法 WithSSL() 鏈結到用戶端物件以使用安全傳輸協定。 |
參數
參數 |
類型 |
描述 |
---|---|---|
|
string |
endPoint 是 URL、網域名稱、IPv4 位址或 IPv6 位址。有效端點如下列出 |
s3.amazonaws.com |
||
play.min.io |
||
localhost |
||
play.min.io |
||
|
string |
accessKey 類似於唯一識別您帳戶的使用者 ID。此欄位為選擇性,可以省略以進行匿名存取。 |
|
string |
secretKey 是您帳戶的密碼。此欄位為選擇性,可以省略以進行匿名存取。 |
|
string |
應向其發出呼叫的區域。此欄位為選擇性,可以省略。 |
|
string |
如果使用臨時存取憑證,則需要設定 sessionToken |
安全存取 (TLS) |
---|
|
|
Proxy |
---|
|
|
建立 MinIO 用戶端。此用戶端提供一個空的物件,可與鏈結一起使用,以僅填入我們需要的成員變數。 |
下一個重要的步驟是連線到端點。您可以將多載方法之一的 WithEndpoint() 鏈接到客戶端物件以進行連線。 |
此客戶端物件預設也使用 Http 存取。若要使用 Https,請將方法 WithSSL() 或 WithSSL(true) 鏈接到客戶端物件,以使用安全的傳輸協定。 |
若要使用非匿名存取,請將方法 WithCredentials() 連同存取金鑰和密碼金鑰鏈接到客戶端物件。 |
最後,鏈接方法 Build() 以取得最終建構的客戶端物件。 |
端點 |
---|
|
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
範例
MinIO
// 1. Using Builder with public MinioClient(), Endpoint, Credentials & Secure (HTTPS) connection
IMinioClient minioClient = new MinioClient()
.WithEndpoint("play.min.io")
.WithCredentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
.WithSSL()
.Build()
// 2. Using Builder with public MinioClient(), Endpoint, Credentials & Secure (HTTPS) connection
IMinioClient minioClient = new MinioClient()
.WithEndpoint("play.min.io", 9000, true)
.WithCredentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
.WithSSL()
.Build()
// 3. Initializing minio client with proxy
IWebProxy proxy = new WebProxy("192.168.0.1", 8000);
IMinioClient minioClient = new MinioClient()
.WithEndpoint("my-ip-address:9000")
.WithCredentials("minio", "minio123")
.WithSSL()
.WithProxy(proxy)
.Build();
AWS S3
// 1. Using Builder with public MinioClient(), Endpoint, Credentials, Secure (HTTPS) connection & proxy
IMinioClient s3Client = new MinioClient()
.WithEndpoint("s3.amazonaws.com")
.WithCredentials("YOUR-AWS-ACCESSKEYID", "YOUR-AWS-SECRETACCESSKEY")
.WithSSL()
.WithProxy(proxy)
.Build();
2. Bucket 操作
MakeBucketAsync(string bucketName, string location = “us-east-1”)
Task MakeBucketAsync(string bucketName, string location = "us-east-1", CancellationToken cancellationToken = default(CancellationToken))
建立新的儲存貯體。
參數
參數 |
類型 |
描述 |
---|---|---|
|
string |
儲存貯體的名稱 |
|
string |
選用參數。AWS 請求預設為 us-east-1 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Create bucket if it doesn't exist.
bool found = await minioClient.BucketExistsAsync("mybucket");
if (found)
{
Console.WriteLine("mybucket already exists");
}
else
{
// Create bucket 'my-bucketname'.
await minioClient.MakeBucketAsync("mybucket");
Console.WriteLine("mybucket is created successfully");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
MakeBucketAsync(MakeBucketArgs args)
Task MakeBucketAsync(MakeBucketArgs args, CancellationToken cancellationToken = default(CancellationToken))
建立新的儲存貯體。
參數
參數 |
類型 |
描述 |
---|---|---|
|
MakeBucketArgs |
引數物件 - 名稱、位置。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Create bucket if it doesn't exist.
bool found = await minioClient.BucketExistsAsync(bktExistArgs);
if (found)
{
Console.WriteLine(bktExistArgs.BucketName +" already exists");
}
else
{
// Create bucket 'my-bucketname'.
await minioClient.MakeBucketAsync(mkBktArgs);
Console.WriteLine(mkBktArgs.BucketName + " is created successfully");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
ListBucketsAsync()
Task<ListAllMyBucketsResult> ListBucketsAsync(CancellationToken cancellationToken = default(CancellationToken))
列出所有儲存貯體。
參數 |
類型 |
描述 |
---|---|---|
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// List buckets that have read access.
var list = await minioClient.ListBucketsAsync();
foreach (Bucket bucket in list.Buckets)
{
Console.WriteLine(bucket.Name + " " + bucket.CreationDateDateTime);
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
BucketExistsAsync(string bucketName)
Task<bool> BucketExistsAsync(string bucketName, CancellationToken cancellationToken = default(CancellationToken))
檢查儲存貯體是否存在。
參數
參數 |
類型 |
描述 |
---|---|---|
|
string |
儲存貯體的名稱。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Check whether 'my-bucketname' exists or not.
bool found = await minioClient.BucketExistsAsync(bucketName);
Console.WriteLine("bucket-name " + ((found == true) ? "exists" : "does not exist"));
}
catch (MinioException e)
{
Console.WriteLine("[Bucket] Exception: {0}", e);
}
BucketExistsAsync(BucketExistsArgs)
Task<bool> BucketExistsAsync(BucketExistsArgs args, CancellationToken cancellationToken = default(CancellationToken))
檢查儲存貯體是否存在。
參數
參數 |
類型 |
描述 |
---|---|---|
|
BucketExistsArgs |
引數物件 - 儲存貯體名稱。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Check whether 'my-bucketname' exists or not.
bool found = await minioClient.BucketExistsAsync(args);
Console.WriteLine(args.BucketName + " " + ((found == true) ? "exists" : "does not exist"));
}
catch (MinioException e)
{
Console.WriteLine("[Bucket] Exception: {0}", e);
}
RemoveBucketAsync(string bucketName)
Task RemoveBucketAsync(string bucketName, CancellationToken cancellationToken = default(CancellationToken))
移除儲存貯體。
注意:- removeBucket 不會刪除儲存貯體內的物件。需要使用 removeObject API 刪除物件。
參數
參數 |
類型 |
描述 |
---|---|---|
|
string |
儲存貯體的名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
Task |
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// Check if my-bucket exists before removing it.
bool found = await minioClient.BucketExistsAsync("mybucket");
if (found)
{
// Remove bucket my-bucketname. This operation will succeed only if the bucket is empty.
await minioClient.RemoveBucketAsync("mybucket");
Console.WriteLine("mybucket is removed successfully");
}
else
{
Console.WriteLine("mybucket does not exist");
}
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
RemoveBucketAsync(RemoveBucketArgs args)
Task RemoveBucketAsync(RemoveBucketArgs args, CancellationToken cancellationToken = default(CancellationToken))
移除儲存貯體。
注意:- removeBucket 不會刪除儲存貯體內的物件。需要使用 removeObject API 刪除物件。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveBucketArgs |
引數物件 - 儲存貯體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
Task |
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// Check if my-bucket exists before removing it.
bool found = await minioClient.BucketExistsAsync(bktExistsArgs);
if (found)
{
// Remove bucket my-bucketname. This operation will succeed only if the bucket is empty.
await minioClient.RemoveBucketAsync(rmBktArgs);
Console.WriteLine(rmBktArgs.BucketName + " is removed successfully");
}
else
{
Console.WriteLine(bktExistsArgs.BucketName + " does not exist");
}
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
public async TaskGetVersioningAsync(GetVersioningArgs args)
Task<VersioningConfiguration> GetVersioningAsync(GetVersioningArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得儲存貯體的版本資訊。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetVersioningArgs |
引數物件 - 儲存貯體名稱。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
無 |
範例
try
{
// Check whether 'mybucket' exists or not.
bool found = minioClient.BucketExistsAsync(bktExistsArgs);
if (found)
{
var args = new GetVersioningArgs("mybucket")
.WithSSL();
VersioningConfiguration vc = await minio.GetVersioningInfoAsync(args);
}
else
{
Console.WriteLine(bktExistsArgs.BucketName + " does not exist");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
public async Task SetVersioningAsync(SetVersioningArgs args)
Task SetVersioningAsync(SetVersioningArgs args, CancellationToken cancellationToken = default(CancellationToken))
將儲存貯體的版本設定為「已啟用」或「已暫停」。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetVersioningArgs |
引數物件 - 儲存貯體名稱、版本狀態。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
無 |
範例
try
{
// Check whether 'mybucket' exists or not.
bool found = minioClient.BucketExistsAsync(bktExistsArgs);
if (found)
{
var args = new SetVersioningArgs("mybucket")
.WithSSL()
.WithVersioningEnabled();
await minio.SetVersioningAsync(setArgs);
}
else
{
Console.WriteLine(bktExistsArgs.BucketName + " does not exist");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetBucketEncryptionAsync(SetBucketEncryptionArgs args)
Task SetBucketEncryptionAsync(SetBucketEncryptionArgs args, CancellationToken cancellationToken = default(CancellationToken));
設定儲存貯體的儲存貯體加密設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetBucketEncryptionArgs |
SetBucketEncryptionArgs 引數物件,包含儲存貯體和加密設定 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Set Encryption Configuration for the bucket
SetBucketEncryptionArgs args = new SetBucketEncryptionArgs()
.WithBucket(bucketName)
.WithEncryptionConfig(config);
await minio.SetBucketEncryptionAsync(args);
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetBucketEncryptionAsync(GetBucketEncryptionArgs args)
Task<ServerSideEncryptionConfiguration> GetBucketEncryptionAsync(GetBucketEncryptionArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得儲存貯體的儲存貯體加密設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetBucketEncryptionArgs |
GetBucketEncryptionArgs 引數物件,包含儲存貯體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
ServerSideEncryptionConfiguration 物件,包含儲存貯體加密設定。
範例
try
{
// Get Bucket Encryption Configuration for the bucket
var args = new GetBucketEncryptionArgs()
.WithBucket(bucketName);
ServerSideEncryptionConfiguration config = await minio.GetBucketEncryptionAsync(args);
Console.WriteLine($"Got encryption configuration for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
RemoveBucketEncryptionAsync(RemoveBucketEncryptionArgs args)
Task RemoveBucketEncryptionAsync(RemoveBucketEncryptionArgs args, CancellationToken cancellationToken = default(CancellationToken))
移除物件的儲存貯體加密設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveBucketEncryptionArgs |
RemoveBucketEncryptionArgs 引數物件,包含儲存貯體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Remove Bucket Encryption Configuration for the bucket
var args = new RemoveBucketEncryptionArgs()
.WithBucket(bucketName);
await minio.RemoveBucketEncryptionAsync(args);
Console.WriteLine($"Removed encryption configuration for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetBucketLifecycleAsync(SetBucketLifecycleArgs args)
Task SetBucketLifecycleAsync(SetBucketLifecycleArgs args, CancellationToken cancellationToken = default(CancellationToken))
設定儲存貯體的生命週期設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetBucketLifecycleArgs |
SetBucketLifecycleArgs 引數物件,包含儲存貯體名稱、要設定的生命週期設定 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Set Lifecycle configuration for the bucket
SetBucketLifecycleArgs args = new SetBucketLifecycleArgs()
.WithBucket(bucketName)
.WithConfiguration(lfc);
await minio.SetBucketLifecycleAsync(args);
Console.WriteLine($"Set Lifecycle for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetBucketLifecycleAsync(GetBucketLifecycleArgs args)
Task<LifecycleConfiguration> GetBucketLifecycleAsync(GetBucketLifecycleArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得儲存貯體的生命週期設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetBucketLifecycleArgs |
GetBucketLifecycleArgs 引數物件,包含儲存貯體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Get Bucket Lifecycle configuration for the bucket
var args = new GetBucketLifecycleArgs()
.WithBucket(bucketName);
var lfc = await minio.GetBucketLifecycleAsync(args);
Console.WriteLine($"Got Lifecycle configuration for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
RemoveBucketLifecycleAsync(RemoveBucketLifecycleArgs args)
Task RemoveBucketLifecycleAsync(RemoveBucketLifecycleArgs args, CancellationToken cancellationToken = default(CancellationToken))
刪除儲存貯體的生命週期設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveBucketLifecycleArgs |
RemoveBucketLifecycleArgs 引數物件,包含儲存貯體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Remove Bucket Lifecycle Configuration for the bucket
var args = new RemoveBucketLifecycleArgs()
.WithBucket(bucketName);
await minio.RemoveBucketLifecycleAsync(args);
Console.WriteLine($"Removed Lifecycle configuration for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetBucketReplicationAsync(SetBucketReplicationArgs args)
Task SetBucketReplicationAsync(SetBucketReplicationArgs args, CancellationToken cancellationToken = default(CancellationToken))
設定儲存貯體的複寫設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetBucketReplicationArgs |
SetBucketReplicationArgs 引數物件,包含儲存貯體名稱、要設定的複寫設定 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Set Replication configuration for the bucket
SetBucketReplicationArgs args = new SetBucketReplicationArgs()
.WithBucket(bucketName)
.WithConfiguration(cfg);
await minio.SetBucketReplicationAsync(args);
Console.WriteLine($"Set Replication configuration for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetBucketReplicationAsync(GetBucketReplicationArgs args)
Task<ReplicationConfiguration> GetBucketReplicationAsync(GetBucketReplicationArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得儲存貯體的複寫設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetBucketReplicationArgs |
GetBucketReplicationArgs 引數物件,包含儲存貯體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Get Bucket Replication for the bucket
var args = new GetBucketReplicationArgs()
.WithBucket(bucketName);
var cfg = await minio.GetBucketReplicationAsync(args);
Console.WriteLine($"Got Replication configuration for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
RemoveBucketReplicationAsync(RemoveBucketReplicationArgs args)
Task RemoveBucketReplicationAsync(RemoveBucketReplicationArgs args, CancellationToken cancellationToken = default(CancellationToken))
刪除儲存體的複寫設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveBucketReplicationArgs |
RemoveBucketReplicationArgs 參數物件,包含儲存體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Remove Bucket Replication Configuration for the bucket
var args = new RemoveBucketReplicationArgs()
.WithBucket(bucketName);
await minio.RemoveBucketReplicationAsync(args);
Console.WriteLine($"Removed Replication configuration for bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
ListObjectsAsync(ListObjectArgs args)
IObservable<Item> ListObjectsAsync(ListObjectArgs args, CancellationToken cancellationToken = default(CancellationToken))
列出儲存體中的所有物件(如果存在,包含版本 ID)。
參數
參數 |
類型 |
描述 |
---|---|---|
|
ListObjectArgs |
ListObjectArgs 物件 - 封裝儲存體名稱、前綴、是否遞迴顯示、是否顯示版本。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
無 |
範例
try
{
// Just list of objects
// Check whether 'mybucket' exists or not.
bool found = minioClient.BucketExistsAsync("mybucket");
if (found)
{
// List objects from 'my-bucketname'
ListObjectArgs args = new ListObjectArgs()
.WithBucket("mybucket")
.WithPrefix("prefix")
.WithRecursive(true);
IObservable<Item> observable = minioClient.ListObjectsAsync(args);
IDisposable subscription = observable.Subscribe(
item => Console.WriteLine("OnNext: {0}", item.Key),
ex => Console.WriteLine("OnError: {0}", ex.Message),
() => Console.WriteLine("OnComplete: {0}"));
}
else
{
Console.WriteLine("mybucket does not exist");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
try
{
// List of objects with version IDs.
// Check whether 'mybucket' exists or not.
bool found = minioClient.BucketExistsAsync("mybucket");
if (found)
{
// List objects from 'my-bucketname'
ListObjectArgs args = new ListObjectArgs()
.WithBucket("mybucket")
.WithPrefix("prefix")
.WithRecursive(true)
.WithVersions(true)
IObservable<Item> observable = minioClient.ListObjectsAsync(args, true);
IDisposable subscription = observable.Subscribe(
item => Console.WriteLine("OnNext: {0} - {1}", item.Key, item.VersionId),
ex => Console.WriteLine("OnError: {0}", ex.Message),
() => Console.WriteLine("OnComplete: {0}"));
}
else
{
Console.WriteLine("mybucket does not exist");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetObjectLockConfigurationAsync(SetObjectLockConfigurationArgs args)
Task SetObjectLockConfigurationAsync(SetObjectLockConfigurationArgs args, CancellationToken cancellationToken = default(CancellationToken))
設定儲存體中的物件鎖定設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetObjectLockConfigurationArgs |
SetObjectLockConfigurationArgs 參數物件,包含儲存體和要設定的鎖定設定 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
ObjectLockConfiguration config = = new ObjectLockConfiguration(RetentionMode.GOVERNANCE, 35);
// Set Object Lock Configuration for the bucket
SetObjectLockConfigurationArgs args = new SetObjectLockConfigurationArgs()
.WithBucket(bucketName)
.WithLockConfiguration(config);
await minio.SetObjectLockConfigurationAsync(args);
Console.WriteLine($"Set Object lock configuration to bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetObjectLockConfigurationAsync(GetObjectLockConfigurationArgs args)
Task<ObjectLockConfiguration> GetObjectLockConfigurationAsync(GetObjectLockConfigurationArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得儲存體的物件鎖定設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetObjectLockConfigurationArgs |
GetObjectLockConfigurationArgs 參數物件,包含儲存體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Get the Object Lock Configuration for the bucket
var args = new GetObjectLockConfigurationArgs()
.WithBucket(bucketName);
var config = await minio.GetObjectLockConfigurationAsync(args);
Console.WriteLine($"Object lock configuration on bucket {bucketName} is : " + config.ObjectLockEnabled);
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
RemoveObjectLockConfigurationAsync(RemoveObjectLockConfigurationArgs args)
Task RemoveObjectLockConfigurationAsync(RemoveObjectLockConfigurationArgs args, CancellationToken cancellationToken = default(CancellationToken))
移除儲存體的物件鎖定設定。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveObjectLockConfigurationArgs |
RemoveObjectLockConfigurationArgs 參數物件,包含儲存體名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
// Remove Object Lock Configuration on the bucket
var args = new RemoveObjectLockConfigurationArgs()
.WithBucket(bucketName);
await minio.RemoveObjectLockConfigurationAsync(args);
Console.WriteLine($"Removed Object lock configuration on bucket {bucketName}.");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
ListIncompleteUploads(ListIncompleteUploadsArgs args)
IObservable<Upload> ListIncompleteUploads(ListIncompleteUploadsArgs args, CancellationToken cancellationToken = default(CancellationToken))
列出儲存體中部分上傳的物件。
參數
參數 |
類型 |
描述 |
---|---|---|
|
ListIncompleteUploadsArgs |
ListIncompleteUploadsArgs 物件 - 封裝儲存體名稱、前綴、是否遞迴顯示。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
無 |
範例
try
{
// Check whether 'mybucket' exist or not.
bool found = minioClient.BucketExistsAsync("mybucket");
if (found)
{
// List all incomplete multipart upload of objects in 'mybucket'
ListIncompleteUploadsArgs listArgs = new ListIncompleteUploadsArgs()
.WithBucket("mybucket")
.WithPrefix("prefix")
.WithRecursive(true);
IObservable<Upload> observable = minioClient.ListIncompleteUploads(listArgs);
IDisposable subscription = observable.Subscribe(
item => Console.WriteLine("OnNext: {0}", item.Key),
ex => Console.WriteLine("OnError: {0}", ex.Message),
() => Console.WriteLine("OnComplete: {0}"));
}
else
{
Console.WriteLine("mybucket does not exist");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
ListenBucketNotificationsAsync(ListenBucketNotificationsArgs args)
IObservable<MinioNotificationRaw> ListenBucketNotificationsAsync(ListenBucketNotificationsArgs args, CancellationToken cancellationToken = default(CancellationToken))
訂閱儲存體變更通知(僅限 Minio 的擴充功能)
參數
參數 |
類型 |
描述 |
---|---|---|
|
ListenBucketNotificationsArgs |
ListenBucketNotificationsArgs 物件 - 封裝儲存體名稱、事件列表、前綴、後綴。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
無 |
範例
try
{
var events = new List<EventType> { EventType.ObjectCreatedAll };
var prefix = null;
var suffix = null;
ListenBucketNotificationsArgs args = new ListenBucketNotificationsArgs()
.WithBucket(bucketName)
.WithEvents(events)
.WithPrefix(prefix)
.WithSuffix(suffix);
IObservable<MinioNotificationRaw> observable = minioClient.ListenBucketNotificationsAsync(args);
IDisposable subscription = observable.Subscribe(
notification => Console.WriteLine($"Notification: {notification.json}"),
ex => Console.WriteLine($"OnError: {ex}"),
() => Console.WriteLine($"Stopped listening for bucket notifications\n"));
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetPolicyAsync(GetPolicyArgs args)
Task<String> GetPolicyAsync(GetPolicyArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得儲存體策略。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetPolicyArgs |
GetPolicyArgs 物件,封裝儲存體名稱。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
GetPolicyArgs args = new GetPolicyArgs()
.WithBucket("myBucket");
String policyJson = await minioClient.GetPolicyAsync(args);
Console.WriteLine("Current policy: " + policyJson);
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetPolicyAsync(SetPolicyArgs args)
Task SetPolicyAsync(SetPolicyArgs args, CancellationToken cancellationToken = default(CancellationToken))
設定儲存體策略。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetPolicyArgs |
SetPolicyArgs 物件,封裝儲存體名稱和以 JSON 字串形式表示的策略。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
Task |
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
string policyJson = $@"{{""Version"":""2012-10-17"",""Statement"":[{{""Action"":[""s3:GetBucketLocation""],""Effect"":""Allow"",""Principal"":{{""AWS"":[""*""]}},""Resource"":[""arn:aws:s3:::{bucketName}""],""Sid"":""""}},{{""Action"":[""s3:ListBucket""],""Condition"":{{""StringEquals"":{{""s3:prefix"":[""foo"",""prefix/""]}}}},""Effect"":""Allow"",""Principal"":{{""AWS"":[""*""]}},""Resource"":[""arn:aws:s3:::{bucketName}""],""Sid"":""""}},{{""Action"":[""s3:GetObject""],""Effect"":""Allow"",""Principal"":{{""AWS"":[""*""]}},""Resource"":[""arn:aws:s3:::{bucketName}/foo*"",""arn:aws:s3:::{bucketName}/prefix/*""],""Sid"":""""}}]}}";
SetPolicyArgs args = new SetPolicyArgs()
.WithBucket("myBucket")
.WithPolicy(policyJson);
await minioClient.SetPolicyAsync(args);
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetBucketNotificationAsync(SetBucketNotificationsArgs args)
Task SetBucketNotificationAsync(SetBucketNotificationsArgs args, CancellationToken cancellationToken = default(CancellationToken))
設定指定儲存體的通知設定
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetBucketNotificationsArgs |
SetBucketNotificationsArgs 物件,封裝儲存體名稱和通知設定物件。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
Task |
列出的例外狀況 |
|
|
|
|
|
|
|
|
範例
try
{
BucketNotification notification = new BucketNotification();
Arn topicArn = new Arn("aws", "sns", "us-west-1", "412334153608", "topicminio");
TopicConfig topicConfiguration = new TopicConfig(topicArn);
List<EventType> events = new List<EventType>(){ EventType.ObjectCreatedPut , EventType.ObjectCreatedCopy };
topicConfiguration.AddEvents(events);
topicConfiguration.AddFilterPrefix("images");
topicConfiguration.AddFilterSuffix("jpg");
notification.AddTopic(topicConfiguration);
QueueConfig queueConfiguration = new QueueConfig("arn:aws:sqs:us-west-1:482314153608:testminioqueue1");
queueConfiguration.AddEvents(new List<EventType>() { EventType.ObjectCreatedCompleteMultipartUpload });
notification.AddQueue(queueConfiguration);
SetBucketNotificationsArgs args = new SetBucketNotificationsArgs()
.WithBucket(bucketName)
.WithBucketNotificationConfiguration(notification);
await minio.SetBucketNotificationsAsync(args);
Console.WriteLine("Notifications set for the bucket " + args.BucketName + " successfully");
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetBucketNotificationAsync(GetBucketNotificationsArgs args)
Task<BucketNotification> GetBucketNotificationAsync(GetBucketNotificationsArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得儲存體通知設定
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetBucketNotificationsArgs |
GetBucketNotificationsArgs 物件,封裝儲存體名稱。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
GetBucketNotificationsArgs args = new GetBucketNotificationsArgs()
.WithBucket(bucketName);
BucketNotification notifications = await minioClient.GetBucketNotificationAsync(args);
Console.WriteLine("Notifications is " + notifications.ToXML());
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
RemoveAllBucketNotificationsAsync(RemoveAllBucketNotificationsArgs args)
Task RemoveAllBucketNotificationsAsync(RemoveAllBucketNotificationsArgs args, CancellationToken cancellationToken = default(CancellationToken))
移除在儲存體上設定的所有通知設定
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveAllBucketNotificationsArgs |
RemoveAllBucketNotificationsArgs args 封裝儲存體名稱。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
``Task` |
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
RemoveAllBucketNotificationsArgs args = new RemoveAllBucketNotificationsArgs()
.WithBucket(bucketName);
await minioClient.RemoveAllBucketNotificationsAsync(args);
Console.WriteLine("Notifications successfully removed from the bucket " + bucketName);
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
3. 物件操作
GetObjectAsync(GetObjectArgs args, ServerSideEncryption sse)
Task GetObjectAsync(GetObjectArgs args, ServerSideEncryption sse = null, CancellationToken cancellationToken = default(CancellationToken))
下載物件。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetObjectArgs |
GetObjectArgs 參數物件,封裝儲存體、物件名稱、版本 ID、ServerSideEncryption 物件、偏移量、長度 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
範例
// 1. With Bucket & Object names.
try
{
// Check whether the object exists using statObject().
// If the object is not found, statObject() throws an exception,
// else it means that the object exists.
// Execution is successful.
StatObjectArgs statObjectArgs = new StatObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject");
await minioClient.StatObjectAsync(statObjectArgs);
// Get input stream to have content of 'my-objectname' from 'my-bucketname'
GetObjectArgs getObjectArgs = new GetObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject")
.WithCallbackStream((stream) =>
{
stream.CopyTo(Console.OpenStandardOutput());
});
await minioClient.GetObjectAsync(getObjectArgs);
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
// 2. With Offset Length specifying a range of bytes & the object as a stream.
try
{
// Check whether the object exists using statObject().
// If the object is not found, statObject() throws an exception,
// else it means that the object exists.
// Execution is successful.
StatObjectArgs statObjectArgs = new StatObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject");
await minioClient.StatObjectAsync(statObjectArgs);
// Get input stream to have content of 'my-objectname' from 'my-bucketname'
GetObjectArgs getObjectArgs = new GetObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject")
.WithOffset(1024L)
.WithObjectSize(10L)
.WithCallbackStream((stream) =>
{
stream.CopyTo(Console.OpenStandardOutput());
});
await minioClient.GetObjectAsync(getObjectArgs);
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
// 3. Downloads and saves the object as a file in the local filesystem.
try
{
// Check whether the object exists using statObjectAsync().
// If the object is not found, statObjectAsync() throws an exception,
// else it means that the object exists.
// Execution is successful.
StatObjectArgs statObjectArgs = new StatObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject");
await minioClient.StatObjectAsync(statObjectArgs);
// Gets the object's data and stores it in photo.jpg
GetObjectArgs getObjectArgs = new GetObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject")
.WithFileName("photo.jpg");
await minioClient.GetObjectAsync(getObjectArgs);
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
PutObjectAsync(PutObjectArgs args)
Task PutObjectAsync(PutObjectArgs args, CancellationToken cancellationToken = default(CancellationToken))
PutObjectAsync:從檔案或串流上傳物件。
參數
參數 |
類型 |
描述 |
---|---|---|
|
PutObjectArgs |
參數物件 - 儲存體名稱、物件名稱、檔案名稱、物件資料串流、物件大小、內容類型、物件中繼資料、執行進度、SSE 等。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
範例
單一物件的最大大小限制為 5TB。putObject 會以透明方式上傳大於 5MiB 的物件,分為多個部分。上傳的資料會使用 MD5SUM 簽章仔細驗證。
try
{
Aes aesEncryption = Aes.Create();
aesEncryption.KeySize = 256;
aesEncryption.GenerateKey();
var ssec = new SSEC(aesEncryption.Key);
var progress = new Progress<ProgressReport>(progressReport =>
{
// Progress events are delivered asynchronously (see remark below)
Console.WriteLine(
$"Percentage: {progressReport.Percentage}% TotalBytesTransferred: {progressReport.TotalBytesTransferred} bytes");
if (progressReport.Percentage != 100)
Console.SetCursorPosition(0, Console.CursorTop - 1);
else Console.WriteLine();
});
PutObjectArgs putObjectArgs = new PutObjectArgs()
.WithBucket("mybucket")
.WithObject("island.jpg")
.WithFilename("/mnt/photos/island.jpg")
.WithContentType("application/octet-stream")
.WithServerSideEncryption(ssec)
.WithProgress(progress);
await minio.PutObjectAsync(putObjectArgs);
Console.WriteLine("island.jpg is uploaded successfully");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
注意: 請注意,當執行個體建構時,預設的 ProgressMinio.Helper.SyncProgress<T>
,但請確保您了解其影響。進度事件是同步傳送,因此可能會在任意執行緒上叫用(主要對 UI 應用程式造成問題),而且執行長時間執行和/或封鎖作業將會降低上傳效能。
StatObjectAsync(StatObjectArgs args)
Task<ObjectStat> StatObjectAsync(StatObjectArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得物件的中繼資料。
參數
參數 |
類型 |
描述 |
---|---|---|
|
StatObjectArgs |
StatObjectArgs 參數物件,包含儲存體、物件名稱和伺服器端加密物件 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
範例
try
{
// Get the metadata of the object.
StatObjectArgs statObjectArgs = new StatObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject");
ObjectStat objectStat = await minioClient.StatObjectAsync(statObjectArgs);
Console.WriteLine(objectStat);
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
CopyObjectAsync(CopyObjectArgs args)
Task<CopyObjectResult> CopyObjectAsync(CopyObjectArgs args, CancellationToken cancellationToken = default(CancellationToken))
將內容從 objectName 複製到 destObjectName。
參數
參數 |
類型 |
描述 |
---|---|---|
|
CopyObjectArgs |
參數物件 - 儲存體名稱、物件名稱、目的地儲存體名稱、目的地物件名稱、複製條件、中繼資料、來源 SSE、目的地 SSE 等。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
範例
此 API 會執行從給定來源物件到目的地物件的伺服器端複製作業。
try
{
CopyConditions copyConditions = new CopyConditions();
copyConditions.setMatchETagNone("TestETag");
ServerSideEncryption sseSrc, sseDst;
// Uncomment to specify source and destination Server-side encryption options
/*
Aes aesEncryption = Aes.Create();
aesEncryption.KeySize = 256;
aesEncryption.GenerateKey();
sseSrc = new SSEC(aesEncryption.Key);
sseDst = new SSES3();
*/
await minioClient.CopyObjectAsync("mybucket", "island.jpg", "mydestbucket", "processed.png", copyConditions, sseSrc:sseSrc, sseDest:sseDst);
Console.WriteLine("island.jpg is uploaded successfully");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
RemoveObjectAsync(RemoveObjectArgs args)
Task RemoveObjectAsync(RemoveObjectArgs args, CancellationToken cancellationToken = default(CancellationToken))
移除一個物件。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveObjectArgs |
參數物件。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
範例
// 1. Remove object myobject from the bucket mybucket.
try
{
RemoveObjectArgs rmArgs = new RemoveObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject");
await minioClient.RemoveObjectAsync(args);
Console.WriteLine("successfully removed mybucket/myobject");
}
catch (MinioException e)
{
Console.WriteLine("Error: " + e);
}
// 2. Remove one version of object myobject with versionID from mybucket.
try
{
RemoveObjectArgs rmArgs = new RemoveObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject")
.WithVersionId("versionId");
await minioClient.RemoveObjectAsync(args);
Console.WriteLine("successfully removed mybucket/myobject{versionId}");
}
catch (MinioException e)
{
Console.WriteLine("Error: " + e);
}
RemoveObjectsAsync(RemoveObjectsArgs args)
Task<IObservable<DeleteError>> RemoveObjectsAsync(RemoveObjectsArgs args, CancellationToken cancellationToken = default(CancellationToken))
移除一個物件列表或物件版本。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveObjectsArgs |
參數物件 - 儲存桶名稱、要刪除的物件列表,或包含 Tuple(物件名稱, 版本 ID 列表) 的 Tuple 列表。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
範例
// 1. Remove list of objects in objectNames from the bucket bucketName.
try
{
string bucketName = "mybucket"
List<String> objectNames = new LinkedList<String>();
objectNames.add("my-objectname1");
objectNames.add("my-objectname2");
objectNames.add("my-objectname3");
RemoveObjectsAsync rmArgs = new RemoveObjectsAsync()
.WithBucket(bucketName)
.WithObjects(objectNames);
IObservable<DeleteError> observable = await minio.RemoveObjectAsync(rmArgs);
IDisposable subscription = observable.Subscribe(
deleteError => Console.WriteLine("Object: {0}", deleteError.Key),
ex => Console.WriteLine("OnError: {0}", ex),
() =>
{
Console.WriteLine("Removed objects from " + bucketName + "\n");
});
}
catch (MinioException e)
{
Console.WriteLine("Error: " + e);
}
// 2. Remove list of objects (only specific versions mentioned in Version ID list) from the bucket bucketName
try
{
string bucketName = "mybucket";
string objectName = "myobject1";
List<string> versionIDs = new List<string>();
versionIDs.Add("abcobject1version1dce");
versionIDs.Add("abcobject1version2dce");
versionIDs.Add("abcobject1version3dce");
List<Tuple<string, string>> objectsVersions = new List<Tuple<string, string>>();
objectsVersions.Add(new Tuple<string, List<string>>(objectName, versionIDs));
objectsVersions.Add(new Tuple<string, string>("myobject2" "abcobject2version1dce"));
objectsVersions.Add(new Tuple<string, string>("myobject2", "abcobject2version2dce"));
objectsVersions.Add(new Tuple<string, string>("myobject2", "abcobject2version3dce"));
RemoveObjectsAsync rmArgs = new RemoveObjectsAsync()
.WithBucket(bucketName)
.WithObjectsVersions(objectsVersions);
IObservable<DeleteError> observable = await minio.RemoveObjectsAsync(rmArgs);
IDisposable subscription = observable.Subscribe(
deleteError => Console.WriteLine("Object: {0}", deleteError.Key),
ex => Console.WriteLine("OnError: {0}", ex),
() =>
{
Console.WriteLine("Listed all delete errors for remove objects on " + bucketName + "\n");
});
}
catch (MinioException e)
{
Console.WriteLine("Error: " + e);
}
RemoveIncompleteUploadAsync(RemoveIncompleteUploadArgs args)
Task RemoveIncompleteUploadAsync(RemoveIncompleteUploadArgs args, CancellationToken cancellationToken = default(CancellationToken))
移除部分上傳的物件。
參數
參數 |
類型 |
描述 |
---|---|---|
|
RemoveIncompleteUploadArgs |
RemoveIncompleteUploadArgs 物件,封裝了儲存桶和物件名稱 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
範例
try
{
// Removes partially uploaded objects from buckets.
RemoveIncompleteUploadArgs args = new RemoveIncompleteUploadArgs()
.WithBucket(bucketName)
.WithObject(objectName);
await minioClient.RemoveIncompleteUploadAsync(args);
Console.WriteLine("successfully removed all incomplete upload session of my-bucketname/my-objectname");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SelectObjectContentAsync(SelectObjectContentArgs args)
Task<SelectResponseStream> SelectObjectContentAsync(SelectObjectContentArgs args, CancellationToken cancellationToken = default(CancellationToken))
將物件下載為串流。
參數
參數 |
類型 |
描述 |
|
---|---|---|---|
|
SelectObjectContentArgs |
用於 SelectObjectContent 異步操作的選項 |
必要參數。 |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
範例
try
{
var opts = new SelectObjectOptions()
{
ExpressionType = QueryExpressionType.SQL,
Expression = "select count(*) from s3object",
InputSerialization = new SelectObjectInputSerialization()
{
CompressionType = SelectCompressionType.NONE,
CSV = new CSVInputOptions()
{
FileHeaderInfo = CSVFileHeaderInfo.None,
RecordDelimiter = "\n",
FieldDelimiter = ",",
}
},
OutputSerialization = new SelectObjectOutputSerialization()
{
CSV = new CSVOutputOptions()
{
RecordDelimiter = "\n",
FieldDelimiter = ",",
}
}
};
SelectObjectContentArgs args = SelectObjectContentArgs()
.WithBucket(bucketName)
.WithObject(objectName)
.WithSelectObjectOptions(opts);
var resp = await minio.SelectObjectContentAsync(args);
resp.Payload.CopyTo(Console.OpenStandardOutput());
Console.WriteLine("Bytes scanned:" + resp.Stats.BytesScanned);
Console.WriteLine("Bytes returned:" + resp.Stats.BytesReturned);
Console.WriteLine("Bytes processed:" + resp.Stats.BytesProcessed);
if (resp.Progress is not null)
{
Console.WriteLine("Progress :" + resp.Progress.BytesProcessed);
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetObjectLegalHoldAsync(SetObjectLegalHoldArgs args)
Task SetObjectLegalHoldAsync(SetObjectLegalHoldArgs args, CancellationToken cancellationToken = default(CancellationToken))
設定物件的法律保留狀態。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetObjectLegalHoldArgs |
SetObjectLegalHoldArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選) |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// Setting WithLegalHold true, sets Legal hold status to ON.
SetObjectLegalHoldArgs args = new SetObjectLegalHoldArgs()
.WithBucket(bucketName)
.WithObject(objectName)
.WithVersionId(versionId)
.WithLegalHold(true);
await minio.SetObjectLegalHoldAsync(args);
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetObjectLegalHoldAsync(GetObjectLegalHoldArgs args)
Task<bool> GetObjectLegalHoldAsync(GetObjectLegalHoldArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得物件的法律保留狀態。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetObjectLegalHoldArgs |
GetObjectLegalHoldArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選) |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// Get Legal Hold status a object
var args = new GetObjectLegalHoldArgs()
.WithBucket(bucketName)
.WithObject(objectName)
.WithVersionId(versionId);
bool enabled = await minio.GetObjectLegalHoldAsync(args);
Console.WriteLine("LegalHold Configuration STATUS for " + bucketName + "/" + objectName +
(!string.IsNullOrEmpty(versionId)?" with Version ID " + versionId: " ") +
" : " + (enabled?"ON":"OFF"));
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
SetObjectRetentionAsync(SetObjectRetentionArgs args)
Task SetObjectRetentionAsync(SetObjectRetentionArgs args, CancellationToken cancellationToken = default(CancellationToken))
設定物件的保留配置。
參數
參數 |
類型 |
描述 |
---|---|---|
|
SetObjectRetentionArgs |
SetObjectRetentionArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選) |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// Setting Retention Configuration of the object.
SetObjectRetentionArgs args = new SetObjectRetentionArgs()
.WithBucket(bucketName)
.WithObject(objectName)
.WithRetentionValidDays(numOfDays);
await minio.SetObjectRetentionAsync(args);
Console.WriteLine($"Assigned retention configuration to object {bucketName}/{objectName}");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
GetObjectRetentionAsync(GetObjectRetentionArgs args)
Task<ObjectRetentionConfiguration> GetObjectRetentionAsync(GetObjectRetentionArgs args, CancellationToken cancellationToken = default(CancellationToken))
取得物件的保留配置。
參數
參數 |
類型 |
描述 |
---|---|---|
|
GetObjectRetentionArgs |
GetObjectRetentionArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選) |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// Get Retention configuration of an object
var args = new GetObjectRetentionArgs()
.WithBucket(bucketName)
.WithObject(objectName);
ObjectRetentionConfiguration config = await minio.GetObjectRetentionAsync(args);
Console.WriteLine($"Got retention configuration for object {bucketName}/{objectName}");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
ClearObjectRetentionAsync(ClearObjectRetentionArgs args)
Task ClearObjectRetentionAsync(ClearObjectRetentionArgs args, CancellationToken cancellationToken = default(CancellationToken))
清除物件的保留配置。
參數
參數 |
類型 |
描述 |
---|---|---|
|
ClearObjectRetentionArgs |
ClearObjectRetentionArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選) |
|
System.Threading.CancellationToken |
選用參數。預設為 default(CancellationToken) |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
|
|
|
|
|
|
範例
try
{
// Clearing the Retention Configuration of the object.
ClearObjectRetentionArgs args = new ClearObjectRetentionArgs()
.WithBucket(bucketName)
.WithObject(objectName);
await minio.ClearObjectRetentionAsync(args);
Console.WriteLine($"Clears retention configuration to object {bucketName}/{objectName}");
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
4. 預簽章操作
PresignedGetObjectAsync(PresignedGetObjectArgs args);
Task<string> PresignedGetObjectAsync(PresignedGetObjectArgs args)
為 HTTP GET 操作生成一個預簽章 URL。即使儲存桶是私有的,瀏覽器/行動客戶端也可以指向此 URL 直接下載物件。此預簽章 URL 可以具有關聯的過期時間(以秒為單位),超過該時間後將不再有效。預設過期時間設定為 7 天。
參數
參數 |
類型 |
描述 |
---|---|---|
|
PresignedGetObjectArgs |
PresignedGetObjectArgs 封裝了儲存桶、物件名稱、過期時間、響應標頭和請求日期 |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
範例
try
{
PresignedGetObjectArgs args = new PresignedGetObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject")
.WithExpiry(60 * 60 * 24);
String url = await minioClient.PresignedGetObjectAsync(args);
Console.WriteLine(url);
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
PresignedPutObjectAsync(PresignedPutObjectArgs args)
Task<string> PresignedPutObjectAsync(PresignedPutObjectArgs args)
為 HTTP PUT 操作生成一個預簽章 URL。即使儲存桶是私有的,瀏覽器/行動客戶端也可以指向此 URL 直接上傳物件。此預簽章 URL 可以具有關聯的過期時間(以秒為單位),超過該時間後將不再有效。預設過期時間設定為 7 天。
參數
參數 |
類型 |
描述 |
---|---|---|
|
PresignedPutObjectArgs |
PresignedPutObjectArgs 參數物件,包含儲存桶、物件名稱和過期時間 |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
|
|
範例
try
{
PresignedPutObjectArgs args = PresignedPutObjectArgs()
.WithBucket("mybucket")
.WithObject("myobject")
.WithExpiry(60 * 60 * 24);
String url = await minioClient.PresignedPutObjectAsync(args);
Console.WriteLine(url);
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
PresignedPostPolicy(PresignedPostPolicyArgs args)
Task<Dictionary<string, string>> PresignedPostPolicyAsync(PresignedPostPolicyArgs args)
允許為 POST 操作的預簽章 URL 設定政策條件。可以設定接收物件上傳的儲存桶名稱、金鑰名稱前綴、過期政策等政策。
參數
參數 |
類型 |
描述 |
---|---|---|
|
PresignedPostPolicyArgs |
PresignedPostPolicyArgs 參數物件,包含儲存桶、物件名稱和物件的 Post 政策。 |
傳回類型 |
例外狀況 |
---|---|
|
列出的例外狀況 |
|
|
|
|
|
範例
try
{
PostPolicy policy = new PostPolicy();
policy.SetContentType("image/png");
policy.SetUserMetadata("custom", "user");
DateTime expiration = DateTime.UtcNow;
policy.SetExpires(expiration.AddDays(10));
policy.SetKey("my-objectname");
policy.SetBucket("my-bucketname");
PresignedPostPolicyArgs args = PresignedPostPolicyArgs()
.WithBucket("my-bucketname")
.WithObject("my-objectname")
.WithPolicy(policy);
Dictionary<string, string> formData = minioClient.Api.PresignedPostPolicy(args);
string curlCommand = "curl ";
foreach (KeyValuePair<string, string> pair in formData)
{
curlCommand = curlCommand + " -F " + pair.Key + "=" + pair.Value;
}
curlCommand = curlCommand + " -F file=@/etc/bashrc https://s3.amazonaws.com/my-bucketname";
Console.WriteLine(curlCommand);
}
catch(MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
客戶端自訂設定
SetAppInfo(string appName, string appVersion)
將應用程式詳細資訊新增至 User-Agent。
參數
參數 |
類型 |
描述 |
---|---|---|
|
string |
執行 API 請求的應用程式名稱 |
|
string |
執行 API 請求的應用程式版本 |
範例
// Set Application name and version to be used in subsequent API requests.
minioClient.SetAppInfo("myCloudApp", "1.0.0")
SetTraceOn(IRequestLogger logger = null)
啟用 HTTP 追蹤。追蹤將寫入 stdout。
參數
參數 |
類型 |
描述 |
---|---|---|
|
IRequestLogger |
介面 |
範例
// Set HTTP tracing on with default trace logger.
minioClient.SetTraceOn()
// Set custom logger for HTTP trace
minioClient.SetTraceOn(new JsonNetLogger())
SetTraceOff()
停用 HTTP 追蹤。
範例
// Sets HTTP tracing off.
minioClient.SetTraceOff()