"github.com/volcengine/ve-tos-golang-sdk/v2/tos"
func checkErr(err error) {
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())
fmt.Println("Error:", err)
accessKey = "*** Provide your access key ***"
secretKey = "*** Provide your secret key ***"
endpoint = "ep-3rf21wq2bsh6o5zsk2ipt****.tos.cn-beijing.privatelink.volces.com"
bucketName = "*** Provide your bucket name ***"
ctx = context.Background()
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))
output, err := client.ListObjectsV2(ctx, &tos.ListObjectsV2Input{
ListObjectsInput: tos.ListObjectsInput{
for _, obj := range output.Contents {
fmt.Println("Object Key:", obj.Key)
fmt.Println("Object LastModified:", obj.LastModified)
fmt.Println("Object ETag:", obj.ETag)
fmt.Println("Object Size:", obj.Size)
fmt.Println("Object Owner:", obj.Owner)
fmt.Println("Object StorageClass:", obj.StorageClass)
fmt.Println("Object HashCrc64ecma:", obj.HashCrc64ecma)