文件

.NET 用戶端 API 參考 Slack

初始化 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();

儲存貯體操作

物件操作

預先簽章操作

儲存貯體策略操作

makeBucket

getObject

presignedGetObject

getBucketPolicy

listBuckets

putObject

presignedPutObject

setBucketPolicy

bucketExists

copyObject

presignedPostPolicy

setBucketNotification

removeBucket

statObject

getBucketNotification

listObjects

removeObject

removeAllBucketNotification

listIncompleteUploads

removeObjects

listenBucketNotifications

selectObjectContent

setVersioning

setLegalHold

getVersioning

getLegalHold

setBucketEncryption

setObjectTags

getBucketEncryption

getObjectTags

removeBucketEncryption

removeObjectTags

setBucketTags

setObjectRetention

getBucketTags

getObjectRetention

removeBucketTags

clearObjectRetention

setObjectLock

removeIncompleteUpload

getObjectLock

removeObjectLock

setBucketLifecycle

getBucketLifecycle

removeBucketLifecycle

setBucketReplication

getBucketReplication

removeBucketReplication

1. 建構函式

public MinioClient(string endpoint, string accessKey = "", string secretKey = "", string region = "", string sessionToken="")

使用給定的端點建立 MinIO 用戶端物件。AccessKey、secretKey、region 和 sessionToken 是選擇性參數,可以省略以進行匿名存取。

用戶端物件預設使用 Http 存取。若要使用 Https,請將方法 WithSSL() 鏈結到用戶端物件以使用安全傳輸協定。

參數

參數

類型

描述

endpoint

string

endPoint 是 URL、網域名稱、IPv4 位址或 IPv6 位址。有效端點如下列出

s3.amazonaws.com

play.min.io

localhost

play.min.io

accessKey

string

accessKey 類似於唯一識別您帳戶的使用者 ID。此欄位為選擇性,可以省略以進行匿名存取。

secretKey

string

secretKey 是您帳戶的密碼。此欄位為選擇性,可以省略以進行匿名存取。

region

string

應向其發出呼叫的區域。此欄位為選擇性,可以省略。

sessionToken

string

如果使用臨時存取憑證,則需要設定 sessionToken

安全存取 (TLS)

.WithSSL() WithSSL(true) 鏈結到 MinIO 用戶端 物件 以使用 https。

.WithSSL(false) 無任何項目 鏈結到 用戶端 物件 以使用 http。

Proxy

.WithProxy(proxyObject) 鏈結到 MinIO 用戶端 物件 以使用 proxy

public MinioClient()

建立 MinIO 用戶端。此用戶端提供一個空的物件,可與鏈結一起使用,以僅填入我們需要的成員變數。

下一個重要的步驟是連線到端點。您可以將多載方法之一的 WithEndpoint() 鏈接到客戶端物件以進行連線。

此客戶端物件預設也使用 Http 存取。若要使用 Https,請將方法 WithSSL() 或 WithSSL(true) 鏈接到客戶端物件,以使用安全的傳輸協定。

若要使用非匿名存取,請將方法 WithCredentials() 連同存取金鑰和密碼金鑰鏈接到客戶端物件。

最後,鏈接方法 Build() 以取得最終建構的客戶端物件。

端點

.WithEndpoint() 鏈接到 MinIO Client 物件 以初始化 端點。

傳回類型

例外狀況

MinioClient

列出的例外狀況

範例

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

建立新的儲存貯體。

參數

參數

類型

描述

bucketName

string

儲存貯體的名稱

region

string

選用參數。AWS 請求預設為 us-east-1

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

AccessDeniedException:在存取遭拒時

RedirectionException:在伺服器重新導向時

InternalClientException:在內部程式庫錯誤時

範例

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

建立新的儲存貯體。

參數

參數

類型

描述

args

MakeBucketArgs

引數物件 - 名稱、位置。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

AccessDeniedException:在存取遭拒時

RedirectionException:在伺服器重新導向時

InternalClientException:在內部程式庫錯誤時

範例

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

列出所有儲存貯體。

參數

類型

描述

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<ListAllMyBucketsResult>:具有儲存貯體類型清單的 Task。

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

AccessDeniedException:在存取遭拒時

InvalidOperationException:在 XML 資料還原序列化失敗時

ErrorResponseException:在執行失敗時

InternalClientException:在內部程式庫錯誤時

範例

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

檢查儲存貯體是否存在。

參數

參數

類型

描述

bucketName

string

儲存貯體的名稱。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<bool>:如果儲存貯體存在,則為 true

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

AccessDeniedException:在存取遭拒時

ErrorResponseException:在執行失敗時

InternalClientException:在內部程式庫錯誤時

範例

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

檢查儲存貯體是否存在。

參數

參數

類型

描述

args

BucketExistsArgs

引數物件 - 儲存貯體名稱。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<bool>:如果儲存貯體存在,則為 true

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

AccessDeniedException:在存取遭拒時

ErrorResponseException:在執行失敗時

InternalClientException:在內部程式庫錯誤時

範例

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 刪除物件。

參數

參數

類型

描述

bucketName

string

儲存貯體的名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

AccessDeniedException:在存取遭拒時

ErrorResponseException:在執行失敗時

InternalClientException:在內部程式庫錯誤時

BucketNotFoundException:在找不到儲存貯體時

範例

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 刪除物件。

參數

參數

類型

描述

args

RemoveBucketArgs

引數物件 - 儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

AccessDeniedException:在存取遭拒時

ErrorResponseException:在執行失敗時

InternalClientException:在內部程式庫錯誤時

BucketNotFoundException:在找不到儲存貯體時

範例

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

取得儲存貯體的版本資訊。

參數

參數

類型

描述

args

GetVersioningArgs

引數物件 - 儲存貯體名稱。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

VersioningConfiguration:從回應填入資訊的 VersioningConfiguration。

範例

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

將儲存貯體的版本設定為「已啟用」或「已暫停」。

參數

參數

類型

描述

args

SetVersioningArgs

引數物件 - 儲存貯體名稱、版本狀態。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task:

範例

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

設定儲存貯體的儲存貯體加密設定。

參數

參數

類型

描述

args

SetBucketEncryptionArgs

SetBucketEncryptionArgs 引數物件,包含儲存貯體和加密設定

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

取得儲存貯體的儲存貯體加密設定。

參數

參數

類型

描述

args

GetBucketEncryptionArgs

GetBucketEncryptionArgs 引數物件,包含儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<ServerSideEncryptionConfiguration>

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

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

移除物件的儲存貯體加密設定。

參數

參數

類型

描述

args

RemoveBucketEncryptionArgs

RemoveBucketEncryptionArgs 引數物件,包含儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

SetBucketTagsAsync(SetBucketTagsArgs args)

Task SetBucketTagsAsync(SetBucketTagsArgs args, CancellationToken cancellationToken = default(CancellationToken))

設定儲存貯體的標籤。

參數

參數

類型

描述

args

SetBucketTagsArgs

SetBucketTagsArgs 引數物件,包含儲存貯體和要設定的標籤

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

try
{
    // Set Tags for the bucket
    SetBucketTagsArgs args = new SetBucketTagsArgs()
                                 .WithBucket(bucketName)
                                 .WithTagging(tags);
    await minio.SetBucketTagsAsync(args);
    Console.WriteLine($"Set Tags for bucket {bucketName}.");
}
catch(MinioException e)
{
   Console.WriteLine("Error occurred: " + e);
}

GetBucketTagsAsync(GetBucketTagsArgs args)

Task<Tagging> GetBucketTagsAsync(GetBucketTagsArgs args, CancellationToken cancellationToken = default(CancellationToken))

取得儲存貯體的標籤。

參數

參數

類型

描述

args

GetBucketTagsArgs

GetBucketTagsArgs 引數物件,包含儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<Tagging>:包含標籤值組的 Tagging 物件。

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

try
{
    // Get Bucket Tags for the bucket
    var args = new GetBucketTagsArgs()
                   .WithBucket(bucketName);
    var tags = await minio.GetBucketTagsAsync(args);
    Console.WriteLine($"Got tags for bucket {bucketName}.");
}
catch(MinioException e)
{
   Console.WriteLine("Error occurred: " + e);
}

RemoveBucketTagsAsync(RemoveBucketTagsArgs args)

Task RemoveBucketTagsAsync(RemoveBucketTagsArgs args, CancellationToken cancellationToken = default(CancellationToken))

刪除儲存貯體的標籤。

參數

參數

類型

描述

args

RemoveBucketTagsArgs

RemoveBucketTagsArgs 引數物件,包含儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

try
{
    // Remove Bucket Encryption Configuration for the bucket
    var args = new RemoveBucketTagsArgs()
                   .WithBucket(bucketName);
    await minio.RemoveBucketTagsAsync(args);
    Console.WriteLine($"Removed tags for bucket {bucketName}.");
}
catch(MinioException e)
{
   Console.WriteLine("Error occurred: " + e);
}

SetBucketLifecycleAsync(SetBucketLifecycleArgs args)

Task SetBucketLifecycleAsync(SetBucketLifecycleArgs args, CancellationToken cancellationToken = default(CancellationToken))

設定儲存貯體的生命週期設定。

參數

參數

類型

描述

args

SetBucketLifecycleArgs

SetBucketLifecycleArgs 引數物件,包含儲存貯體名稱、要設定的生命週期設定

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

取得儲存貯體的生命週期設定。

參數

參數

類型

描述

args

GetBucketLifecycleArgs

GetBucketLifecycleArgs 引數物件,包含儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<LifecycleConfiguration>:LifecycleConfiguration 物件,包含生命週期設定詳細資料。

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

刪除儲存貯體的生命週期設定。

參數

參數

類型

描述

args

RemoveBucketLifecycleArgs

RemoveBucketLifecycleArgs 引數物件,包含儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

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

參數

參數

類型

描述

args

SetBucketReplicationArgs

SetBucketReplicationArgs 引數物件,包含儲存貯體名稱、要設定的複寫設定

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

取得儲存貯體的複寫設定。

參數

參數

類型

描述

args

GetBucketReplicationArgs

GetBucketReplicationArgs 引數物件,包含儲存貯體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<ReplicationConfiguration>:ReplicationConfiguration 物件,包含複寫設定詳細資料。

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

刪除儲存體的複寫設定。

參數

參數

類型

描述

args

RemoveBucketReplicationArgs

RemoveBucketReplicationArgs 參數物件,包含儲存體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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)。

參數

參數

類型

描述

args

ListObjectArgs

ListObjectArgs 物件 - 封裝儲存體名稱、前綴、是否遞迴顯示、是否顯示版本。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

IObservable<Item>:Item 的 Observable。

範例

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

設定儲存體中的物件鎖定設定。

參數

參數

類型

描述

args

SetObjectLockConfigurationArgs

SetObjectLockConfigurationArgs 參數物件,包含儲存體和要設定的鎖定設定

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

取得儲存體的物件鎖定設定。

參數

參數

類型

描述

args

GetObjectLockConfigurationArgs

GetObjectLockConfigurationArgs 參數物件,包含儲存體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<ObjectLockConfiguration>:ObjectLockConfiguration 物件,包含鎖定啟用狀態和物件鎖定規則。

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

移除儲存體的物件鎖定設定。

參數

參數

類型

描述

args

RemoveObjectLockConfigurationArgs

RemoveObjectLockConfigurationArgs 參數物件,包含儲存體名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

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

列出儲存體中部分上傳的物件。

參數

參數

類型

描述

args

ListIncompleteUploadsArgs

ListIncompleteUploadsArgs 物件 - 封裝儲存體名稱、前綴、是否遞迴顯示。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

IObservable<Upload> :Upload 的 Observable。

範例

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 的擴充功能)

參數

參數

類型

描述

args

ListenBucketNotificationsArgs

ListenBucketNotificationsArgs 物件 - 封裝儲存體名稱、事件列表、前綴、後綴。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

IObservable<MinioNotificationRaw>MinioNotificationRaw 的 Observable,包含原始 JSON 通知。使用 MinioNotification 類別,使用您選擇的 JSON 程式庫進行反序列化。

範例

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

取得儲存體策略。

參數

參數

類型

描述

args

GetPolicyArgs

GetPolicyArgs 物件,封裝儲存體名稱。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<String>:以 JSON 字串形式表示的指定儲存體目前的儲存體策略。

列出的例外狀況

InvalidBucketNameException :儲存體名稱無效時。

InvalidObjectPrefixException:物件前綴無效時。

ConnectionException:連線錯誤時。

AccessDeniedException:在存取遭拒時

InternalClientException:內部程式庫錯誤時。

BucketNotFoundException:在找不到儲存貯體時

範例

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

設定儲存體策略。

參數

參數

類型

描述

args

SetPolicyArgs

SetPolicyArgs 物件,封裝儲存體名稱和以 JSON 字串形式表示的策略。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

InvalidBucketNameException :儲存體名稱無效時

InvalidObjectPrefixException:物件前綴無效時

範例

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

設定指定儲存體的通知設定

參數

參數

類型

描述

args

SetBucketNotificationsArgs

SetBucketNotificationsArgs 物件,封裝儲存體名稱和通知設定物件。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

InvalidBucketNameException :儲存體名稱無效時

InvalidOperationException:通知物件序列化失敗時

範例

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

取得儲存體通知設定

參數

參數

類型

描述

args

GetBucketNotificationsArgs

GetBucketNotificationsArgs 物件,封裝儲存體名稱。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<BucketNotification>:儲存體的目前通知設定。

列出的例外狀況

InvalidBucketNameException :儲存體名稱無效時。

ConnectionException:連線錯誤時。

AccessDeniedException:在存取遭拒時

InternalClientException:內部程式庫錯誤時。

BucketNotFoundException:在找不到儲存貯體時

InvalidOperationException:在 XML 資料還原序列化失敗時

範例

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

移除在儲存體上設定的所有通知設定

參數

參數

類型

描述

args

RemoveAllBucketNotificationsArgs

RemoveAllBucketNotificationsArgs args 封裝儲存體名稱。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

``Task`

列出的例外狀況

InvalidBucketNameException :儲存體名稱無效時。

ConnectionException:連線錯誤時。

AccessDeniedException:在存取遭拒時

InternalClientException:內部程式庫錯誤時。

BucketNotFoundException:在找不到儲存貯體時

InvalidOperationException:XML 資料序列化失敗時

範例

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

下載物件。

參數

參數

類型

描述

args

GetObjectArgs

GetObjectArgs 參數物件,封裝儲存體、物件名稱、版本 ID、ServerSideEncryption 物件、偏移量、長度

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task:Task 回呼會傳回包含物件資料的 InputStream。

列出的例外狀況

InvalidBucketNameException:儲存體名稱無效時。

ConnectionException:連線錯誤時。

InternalClientException:內部程式庫錯誤時。

範例

// 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:從檔案或串流上傳物件。

參數

參數

類型

描述

args

PutObjectArgs

參數物件 - 儲存體名稱、物件名稱、檔案名稱、物件資料串流、物件大小、內容類型、物件中繼資料、執行進度、SSE 等。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

EntityTooLargeException:建議的上傳大小超過允許上限時

UnexpectedShortReadException:讀取的資料比輸入緩衝區的大小還短時

ArgumentNullException:輸入串流為 null 時

InvalidOperationException:PutObjectArgs 的輸入值無效時

範例

單一物件的最大大小限制為 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);
}

注意: 請注意,當執行個體建構時,預設的 Progress 類別 會將進度更新張貼到 SynchronizationContext (來源)。這表示進度更新是以非同步方式傳送。如果您想要同步接收事件,請改用 Minio.Helper.SyncProgress<T>,但請確保您了解其影響。進度事件是同步傳送,因此可能會在任意執行緒上叫用(主要對 UI 應用程式造成問題),而且執行長時間執行和/或封鎖作業將會降低上傳效能。

StatObjectAsync(StatObjectArgs args)

Task<ObjectStat> StatObjectAsync(StatObjectArgs args, CancellationToken cancellationToken = default(CancellationToken))

取得物件的中繼資料。

參數

參數

類型

描述

args

StatObjectArgs

StatObjectArgs 參數物件,包含儲存體、物件名稱和伺服器端加密物件

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<ObjectStat>:已填入的物件中繼資料。

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

範例

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。

參數

參數

類型

描述

args

CopyObjectArgs

參數物件 - 儲存體名稱、物件名稱、目的地儲存體名稱、目的地物件名稱、複製條件、中繼資料、來源 SSE、目的地 SSE 等。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

ArgumentException:缺少儲存體/物件名稱時

範例

此 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))

移除一個物件。

參數

參數

類型

描述

args

RemoveObjectArgs

參數物件。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

範例

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

移除一個物件列表或物件版本。

參數

參數

類型

描述

args

RemoveObjectsArgs

參數物件 - 儲存桶名稱、要刪除的物件列表,或包含 Tuple(物件名稱, 版本 ID 列表) 的 Tuple 列表。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

範例

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

移除部分上傳的物件。

參數

參數

類型

描述

args

RemoveIncompleteUploadArgs

RemoveIncompleteUploadArgs 物件,封裝了儲存桶和物件名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

InternalClientException:在內部程式庫錯誤時

範例

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

將物件下載為串流。

參數

參數

類型

描述

args

SelectObjectContentArgs

用於 SelectObjectContent 異步操作的選項

必要參數。

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task:Task 回調返回一個包含選擇結果的 SelectResponseStream。

列出的例外狀況

InvalidBucketNameException:儲存體名稱無效時。

ConnectionException:連線錯誤時。

InternalClientException:內部程式庫錯誤時。

ArgumentException:在響應格式無效時拋出。

IOException:在資料不足時拋出。

範例

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

設定物件的法律保留狀態。

參數

參數

類型

描述

args

SetObjectLegalHoldArgs

SetObjectLegalHoldArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選)

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MissingObjectLockConfigurationException:在創建時未啟用物件鎖定的儲存桶上拋出。

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

範例

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

取得物件的法律保留狀態。

參數

參數

類型

描述

args

GetObjectLegalHoldArgs

GetObjectLegalHoldArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選)

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<bool>:如果啟用 LegalHold,則為 True,否則為 false。

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MissingObjectLockConfigurationException:在創建時未啟用物件鎖定的儲存桶上拋出。

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

範例

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

SetObjectTagsAsync(SetObjectTagsArgs args)

Task SetObjectTagsAsync(SetObjectTagsArgs args, CancellationToken cancellationToken = default(CancellationToken))

設定物件的標籤。

參數

參數

類型

描述

args

SetObjectTagsArgs

SetObjectTagsArgs 參數物件,包含物件和要設定的標籤

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

try
{
    // Set Tags for the object
    SetObjectTagsArgs args = new SetObjectTagsArgs()
                                 .WithBucket(bucketName)
                                 .WithObject(objectName)
                                 .WithTagging(tags);
    await minio.SetObjectTagsAsync(args);
    Console.WriteLine($"Set tags for object {bucketName}/{objectName}.");
}
catch(MinioException e)
{
   Console.WriteLine("Error occurred: " + e);
}

GetObjectTagsAsync(GetObjectTagsArgs args)

Task<Tagging> GetObjectTagsAsync(GetObjectTagsArgs args, CancellationToken cancellationToken = default(CancellationToken))

取得物件的標籤。

參數

參數

類型

描述

args

GetObjectTagsArgs

GetObjectTagsArgs 參數物件,包含物件名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<Tagging>: Task物件,其中包含標籤-值對。

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

try
{
    // Get Object Tags for the object
    var args = new GetObjectTagsArgs()
                   .WithBucket(bucketName)
                   .WithObject(objectName);
    var tags = await minio.GetObjectTagsAsync(args);
    Console.WriteLine($"Got tags for object {bucketName}/{objectName}.");
}
catch(MinioException e)
{
   Console.WriteLine("Error occurred: " + e);
}

RemoveObjectTagsAsync(RemoveObjectTagsArgs args)

Task RemoveObjectTagsAsync(RemoveObjectTagsArgs args, CancellationToken cancellationToken = default(CancellationToken))

刪除物件的標籤。

參數

參數

類型

描述

args

RemoveObjectTagsArgs

RemoveObjectTagsArgs 參數物件,包含物件名稱

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

UnexpectedMinioException:在作業期間發生內部錯誤時

範例

try
{
    // Remove Tags for the object
    var args = new RemoveObjectTagsArgs()
                   .WithBucket(bucketName)
                   .WithObject(objectName);
    await minio.RemoveObjectTagsAsync(args);
    Console.WriteLine($"Removed tags for object {bucketName}/{objectName}.");
}
catch(MinioException e)
{
    Console.WriteLine("Error occurred: " + e);
}

SetObjectRetentionAsync(SetObjectRetentionArgs args)

Task SetObjectRetentionAsync(SetObjectRetentionArgs args, CancellationToken cancellationToken = default(CancellationToken))

設定物件的保留配置。

參數

參數

類型

描述

args

SetObjectRetentionArgs

SetObjectRetentionArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選)

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MissingObjectLockConfigurationException:在創建時未啟用物件鎖定的儲存桶上拋出。

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

範例

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

取得物件的保留配置。

參數

參數

類型

描述

args

GetObjectRetentionArgs

GetObjectRetentionArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選)

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task<ObjectRetentionConfiguration>:ObjectRetentionConfiguration 物件,包含配置資料。

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MissingObjectLockConfigurationException:在創建時未啟用物件鎖定的儲存桶上拋出。

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

範例

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

清除物件的保留配置。

參數

參數

類型

描述

args

ClearObjectRetentionArgs

ClearObjectRetentionArgs 參數物件,包含儲存桶、物件名稱、版本 ID(可選)

cancellationToken

System.Threading.CancellationToken

選用參數。預設為 default(CancellationToken)

傳回類型

例外狀況

Task

列出的例外狀況

AuthorizationException:在存取金鑰或密碼金鑰錯誤或找不到時

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidObjectNameException:物件名稱無效時

BucketNotFoundException:在找不到具有名稱的儲存貯體時

ObjectNotFoundException:找不到具有該名稱的物件時

MissingObjectLockConfigurationException:在創建時未啟用物件鎖定的儲存桶上拋出。

MalFormedXMLException:在 HTTP 請求驗證失敗中的設定 XML 時

範例

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 天。

參數

參數

類型

描述

args

PresignedGetObjectArgs

PresignedGetObjectArgs 封裝了儲存桶、物件名稱、過期時間、響應標頭和請求日期

傳回類型

例外狀況

Task<string>:字串,包含用於下載物件的 URL

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

InvalidExpiryRangeException:在過期範圍無效時拋出。

範例

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 天。

參數

參數

類型

描述

args

PresignedPutObjectArgs

PresignedPutObjectArgs 參數物件,包含儲存桶、物件名稱和過期時間

傳回類型

例外狀況

Task<string>:字串,包含用於上傳物件的 URL

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

InvalidKeyException:在訪問金鑰或秘密金鑰無效時拋出。

ConnectionException:在連線錯誤時

InvalidExpiryRangeException:在過期範圍無效時拋出。

範例

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 設定政策條件。可以設定接收物件上傳的儲存桶名稱、金鑰名稱前綴、過期政策等政策。

參數

參數

類型

描述

args

PresignedPostPolicyArgs

PresignedPostPolicyArgs 參數物件,包含儲存桶、物件名稱和物件的 Post 政策。

傳回類型

例外狀況

Task<Dictionary<string, string>>:用於構造表單資料的字串映射。

列出的例外狀況

InvalidBucketNameException:在儲存貯體名稱無效時

ConnectionException:在連線錯誤時

NoSuchAlgorithmException:在簽名計算期間找不到請求的演算法時拋出。

範例

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。

參數

參數

類型

描述

appName

string

執行 API 請求的應用程式名稱

appVersion

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。

參數

參數

類型

描述

logger

IRequestLogger

介面 Minio.IRequestLogger 的實作,用於追蹤 HTTP 的序列化模型

範例

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