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

对象存储

复制全文
下载 pdf
桶基础接口
获取桶信息(Go SDK)
复制全文
下载 pdf
获取桶信息(Go SDK)
通过 HeadBucket,获取存储桶(Bucket)的信息, 同时可以根据返回的 err 中的 HTTP Code 信息,判断桶是否存在。本文介绍如何获取桶元数据和判断桶是否存在。​
注意事项​
  • 获取桶元数据之前,您必须具有 tos:HeadBucket 权限。具体操作,请参见权限配置指南。​
  • 若桶不存在则该接口会返回 404,也常用于判断桶是否存在。​
示例代码​
判断桶是否存在​
​
package main​
​
import (​
"context"​
"fmt"​
"net/http"​
​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos"​
)​
​
func checkErr(err error) {​
if err != nil {​
if serverErr, ok := err.(*tos.TosServerError); ok {​
fmt.Println("Error:", serverErr.Error())​
fmt.Println("Request ID:", serverErr.RequestID)​
fmt.Println("Response Status Code:", serverErr.StatusCode)​
fmt.Println("Response Header:", serverErr.Header)​
fmt.Println("Response Err Code:", serverErr.Code)​
fmt.Println("Response Err Msg:", serverErr.Message)​
} else if clientErr, ok := err.(*tos.TosClientError); ok {​
fmt.Println("Error:", clientErr.Error())​
fmt.Println("Client Cause Err:", clientErr.Cause.Error())​
} else {​
fmt.Println("Error:", err)​
}​
panic(err)​
}​
}​
​
func main() {​
var (​
// 火山引擎账号 accessKey 具有 TOS 访问权限​
accessKey = os.Getenv("TOS_ACCESS_KEY")​
secretKey = os.Getenv("TOS_SECRET_KEY")​
// Bucket 对应的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com​
endpoint = "https://tos-cn-beijing.volces.com"​
region = "cn-beijing"​
// 填写 BucketName​
bucketName = "*** Provide your bucket name ***"​
)​
// 初始化客户端​
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
checkErr(err)​
​
// 查看存储桶元数据信息​
resp, err := client.HeadBucket(context.Background(), &tos.HeadBucketInput{Bucket: bucketName})​
if err != nil {​
// 判断桶是否存在​
if serverErr, ok := err.(*tos.TosServerError); ok {​
if serverErr.StatusCode == http.StatusNotFound {​
// 存储桶不存在​
fmt.Println("Bucket not found.")​
} else {​
fmt.Println("Error:", serverErr.Error())​
fmt.Println("Request ID:", serverErr.RequestID)​
fmt.Println("Response Status Code:", serverErr.StatusCode)​
fmt.Println("Response Header:", serverErr.Header)​
panic(err)​
}​
} else {​
panic(err)​
}​
}​
// 桶存在,查看请求信息和桶信息​
fmt.Println("Head Bucket Request ID: ", resp.RequestID)​
fmt.Println("Head Bucket Response Status Code: ", resp.StatusCode)​
​
}​
​
获取桶元数据信息​
​
package main​
​
import (​
"context"​
"fmt"​
"net/http"​
​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos"​
)​
​
func checkErr(err error) {​
if err != nil {​
if serverErr, ok := err.(*tos.TosServerError); ok {​
fmt.Println("Error:", serverErr.Error())​
fmt.Println("Request ID:", serverErr.RequestID)​
fmt.Println("Response Status Code:", serverErr.StatusCode)​
fmt.Println("Response Header:", serverErr.Header)​
fmt.Println("Response Err Code:", serverErr.Code)​
fmt.Println("Response Err Msg:", serverErr.Message)​
} else if clientErr, ok := err.(*tos.TosClientError); ok {​
fmt.Println("Error:", clientErr.Error())​
fmt.Println("Client Cause Err:", clientErr.Cause.Error())​
} else {​
fmt.Println("Error:", err)​
}​
panic(err)​
}​
}​
​
func main() {​
var (​
// 火山引擎账号 accessKey 具有 TOS 访问权限​
accessKey = os.Getenv("TOS_ACCESS_KEY")​
secretKey = os.Getenv("TOS_SECRET_KEY")​
// Bucket 对应的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com​
endpoint = "https://tos-cn-beijing.volces.com"​
region = "cn-beijing"​
// 填写 BucketName​
bucketName = "*** Provide your bucket name ***"​
)​
// 初始化客户端​
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
checkErr(err)​
​
// 查看存储桶元数据信息​
resp, err := client.HeadBucket(context.Background(), &tos.HeadBucketInput{Bucket: bucketName})​
if err != nil {​
// 判断桶是否存在​
if serverErr, ok := err.(*tos.TosServerError); ok {​
if serverErr.StatusCode == http.StatusNotFound {​
fmt.Println("Bucket not found.")​
} else {​
fmt.Println("Error:", serverErr.Error())​
fmt.Println("Request ID:", serverErr.RequestID)​
fmt.Println("Response Status Code:", serverErr.StatusCode)​
fmt.Println("Response Header:", serverErr.Header)​
fmt.Println("Response Err Code:", serverErr.Code)​
fmt.Println("Response Err Msg:", serverErr.Message)​
panic(err)​
}​
} else {​
panic(err)​
}​
}​
// 桶存在,查看请求信息和桶信息​
fmt.Println("Head Bucket Request ID: ", resp.RequestID)​
fmt.Println("Head Bucket Response Status Code: ", resp.StatusCode)​
// 查看存储桶地域​
fmt.Println("Bucket Region:", resp.Region)​
// 查看存储桶存储类型​
fmt.Println("Bucket Storage Class:", resp.StorageClass)​
// 查看桶AZ类型​
fmt.Println("Bucket Az Redundancy:", resp.AzRedundancy)​
}​
​
相关文档​
关于获取桶的元数据 API 文档,请参见 HeadBucket。​
​
最近更新时间:2025.07.30 10:16:57
这个页面对您有帮助吗?
有用
有用
无用
无用