You need to enable JavaScript to run this app.
文档中心
对象存储

对象存储

复制全文
下载 pdf
存储桶接口
获取桶元数据(.NET SDK)
复制全文
下载 pdf
获取桶元数据(.NET SDK)

通过 HeadBucket 获取存储桶(Bucket)的信息, 同时可以根据 HTTP Code 判断桶是否存在。本文介绍如何获取桶元数据,和判断桶是否存在。

注意事项

  • 获取桶元数据前,您需要确保账号已拥有 tos:HeadBucket 权限。具体操作,请参见权限配置指南
  • 若桶不存在则该接口会返回 404,也常用于判定桶是否存在。

示例代码

判断桶是否存在

以下代码用于判断桶是否存在。

using System;
using TOS;
using TOS.Error;
using TOS.Model;

namespace ConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
            var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
            // endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
            // Bucket 的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com
            var endpoint = "https://tos-cn-beijing.volces.com";
            var region = "cn-beijing";
            // 填写 BucketName
            var bucketName = "*** Provide your bucket name ***";

            // 创建TOSClient实例
            var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();

            try
            {
                // 创建获取桶元数据输入
                var headBucketInput = new HeadBucketInput()
                {
                    Bucket = bucketName,
                };
                // 查看存储桶元数据信息
                var headBucketOutput = client.HeadBucket(headBucketInput);
                // 桶存在,查看请求信息和桶信息
                Console.WriteLine("Head bucket succeeded, request id {0} ", headBucketOutput.RequestID);
                Console.WriteLine("Head bucket succeeded, status code {0} ", headBucketOutput.StatusCode);
            }
            catch (TosServerException ex)
            {
                // 判断桶是否存在
                if (ex.StatusCode == 404)
                {
                    // 存储桶不存在
                    Console.WriteLine("Bucket not found");
                }
                Console.WriteLine("Head bucket failed, request id {0}", ex.RequestID);
                Console.WriteLine("Head bucket failed, status code {0}", ex.StatusCode);
                Console.WriteLine("Head bucket failed, response error code {0}", ex.Code);
                Console.WriteLine("Head bucket failed, response error message {0}", ex.Message);
            }
            catch (TosClientException ex)
            {
                Console.WriteLine("Head bucket failed, error message {0}", ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Head bucket failed, {0}", ex.Message);
            }
        }
    }
}

获取桶元数据信息

以下代码用于获取桶元数据信息。

using System;
using TOS;
using TOS.Error;
using TOS.Model;

namespace ConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
            var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
            // endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
            // Bucket 的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com
            var endpoint = "https://tos-cn-beijing.volces.com";
            var region = "cn-beijing";
            // 填写 BucketName
            var bucketName = "*** Provide your bucket name ***";

            // 创建TOSClient实例
            var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();

            try
            {
                // 创建获取桶元数据输入
                var headBucketInput = new HeadBucketInput()
                {
                    Bucket = bucketName,
                };
                // 查看存储桶元数据信息
                var headBucketOutput = client.HeadBucket(headBucketInput);
                // 桶存在,查看请求信息和桶信息
                Console.WriteLine("Head bucket succeeded, request id {0} ", headBucketOutput.RequestID);
                Console.WriteLine("Head bucket succeeded, status code {0} ", headBucketOutput.StatusCode);
                // 查看存储桶地域
                Console.WriteLine("Bucket Region {0}", headBucketOutput.Region);
                // 查看存储桶存储类型
                Console.WriteLine("Bucket Storage Class {0}", headBucketOutput.StorageClass);
                // 查看桶 AZ 类型
                Console.WriteLine("Bucket Az Redundancy {0}", headBucketOutput.AzRedundancy);
            }
            catch (TosServerException ex)
            {
                // 判断桶是否存在
                if (ex.StatusCode == 404)
                {
                    // 存储桶不存在
                    Console.WriteLine("Bucket not found");
                }
                Console.WriteLine("Head bucket failed, request id {0}", ex.RequestID);
                Console.WriteLine("Head bucket failed, status code {0}", ex.StatusCode);
                Console.WriteLine("Head bucket failed, response error code {0}", ex.Code);
                Console.WriteLine("Head bucket failed, response error message {0}", ex.Message);
            }
            catch (TosClientException ex)
            {
                Console.WriteLine("Head bucket failed, error message {0}", ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Head bucket failed, {0}", ex.Message);
            }
        }
    }
}

相关文档

关于获取桶的元数据 API 接口的详细介绍,请参见 HeadBucket

最近更新时间:2024.02.04 18:31:07
这个页面对您有帮助吗?
有用
有用
无用
无用