获取桶列表

Bucket,是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。用户可以设置和修改存储空间属性用来控制地域、访问权限、生命周期等,这些属性设置直接作用于该存储空间内所有对象,因此可以通过灵活创建不同的存储空间来完成不同的管理功能。用户需通过身份验证来查询自己创建的bucket,且无法匿名发送请求。

ListBuckets操作列出用户创建的bucket。

代码示例:

using System;
using System.Threading.Tasks;
using Amazon.Runtime;
using Amazon.S3;

namespace DotNetSDK.BucketOperation
{
    public class ListBucketExample
    {
        public static async Task ListBuckets()
        {
            var accessKey = "YOUR_ACCESS_KEY";
            var secretKey = "YOUR_SECRET_KEY";
            var endpoint = "YOUR_ENDPOINT";
            try
            {
                var credentials = new BasicAWSCredentials(accessKey, secretKey);
                var conf = new AmazonS3Config
                {
                    ServiceURL = endpoint
                };

                var s3Client = new AmazonS3Client(credentials, conf);
                var result = await s3Client.ListBucketsAsync();
                if (result.HttpStatusCode != System.Net.HttpStatusCode.OK)
                {
                    Console.WriteLine("fail to list buckets, HttpStatusCode:{0}, ErrorCode:{1}.", (int) result.HttpStatusCode, result.HttpStatusCode);
                    return;
                }

                Console.WriteLine("the buckets of {0} are:", result.Owner.DisplayName);
                result.Buckets.ForEach(b => { Console.WriteLine(b.BucketName); });
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

ListBuckets操作返回的结果如下:

属性名 类型 说明
Buckets List<S3Bucket> bucket信息的数组,包含了每个bucket的名字和创建时间。
Owner Owner bucket的所有者信息。

 响应结果:

HTTP状态码 响应码 描述
200 OK 操作成功。
403 Forbidden 用户没有权限执行操作。