集成 NET SDK
PM> Install-Package Minio
初始化客户端
using Minio;
var endpoint = "play.min.io";
var accessKey = "Q3AM3UQ867trueSPQQA43P2F";
var secretKey = "zuf+tfteSlswRu7BJ86wtrueekitnifILbZam1KYY3TG";
var secure = true;
// Initialize the client with access credentials.
private static MinioClient minio = new MinioClient()
.WithEndpoint(endpoint)
.WithCredentials(accessKey, secretKey)
.WithSSL(secure)
.Build();
存储桶基本操作
检查存储桶是否存在
Task<bool> BucketExistsAsync(BucketExistsArgs args, CancellationToken cancellationToken = default(CancellationToken))
示例代码
try
{
// 检查 'my-bucketname' 桶是否存在.
BucketExistsArgs args= new BucketExistsArgs().WithBucket(bucketName);
bool found = await minioClient.BucketExistsAsync(args);
Console.WriteLine("bucket-name " + ((found == true) ? "exists" : "does not exist"));
}
catch (MinioException e)
{
Console.WriteLine("[Bucket] Exception: {0}", e);
}
创建存储桶
Task MakeBucketAsync(MakeBucketArgs args, CancellationToken cancellationToken = default(CancellationToken))
示例代码
try
{
// Create bucket if it doesn't exist.
BucketExistsArgs bktExistArgs= new BucketExistsArgs().WithBucket(bucketName);
bool found = await minioClient.BucketExistsAsync(bktExistArgs);
if (found)
{
Console.WriteLine(bktExistArgs.BucketName +" already exists");
}
else
{
// Create bucket 'my-bucketname'.
string loc = "us-east-1";
MakeBucketArgs mkBktArgs = new MakeBucketArgs()
.WithBucket(bucketName)
.WithLocation(loc); //并指定区域为eu-west-1
await minioClient.MakeBucketAsync(mkBktArgs);
Console.WriteLine(mkBktArgs.BucketName + " is created successfully");
}
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
}
查询存储桶信息列表
Task<ListAllMyBucketsResult> ListBucketsAsync(CancellationToken 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);
}
删除桶
删除一个空桶
Task RemoveBucketAsync(RemoveBucketArgs args, CancellationToken cancellationToken = default(CancellationToken))
示例代码
try
{
// Check if my-bucket exists before removing it.
BucketExistsArgs bktExistArgs= new BucketExistsArgs().WithBucket(bucketName);
bool found = await minioClient.BucketExistsAsync(bktExistsArgs);
if (found)
{
// Remove bucket my-bucketname. This operation will succeed only if the bucket is empty.
RemoveBucketArgs rmBktArgs = new RemoveBucketArgs()
.WithBucket(bucketName)
;
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);
}
版本设置
若开启了多版本控制,上传对象时,OBS自动为每个对象创建唯一的版本号。上传同名的对象将以不同的版本号同时保存在OBS中。
若未开启多版本控制,向同一个文件夹中上传同名的对象时,新上传的对象将覆盖原有的对象。
某些功能(例如版本控制、对象锁定和存储桶复制)需要使用擦除编码分布式部署 MinIO。开启了版本控制后,允许在同一密钥下保留同一对象的多个版本。