You need to enable JavaScript to run this app.
Torch Object Storage

Torch Object Storage

Copy page
Download PDF
Basic Bucket Interface
Creating a Bucket (Go SDK)
Copy page
Download PDF
Creating a Bucket (Go SDK)
A Bucket in TOS is a globally unique namespace that serves as a container for storing Object data. The name of a newly created bucket must be unique within TOS. This article explains how to create a bucket.​
Precautions​
  • Only lowercase letters (a–z), digits, and hyphens (-) are permitted.​
  • The beginning and end can only be a digit or a letter.​
  • The length must be between 3 and 63 characters.​
  • When accessing TOS via other Volcano Engine products in the same region as TOS, it is recommended to use the internal network Endpoint. For more information about regions and Endpoints, please refer to Regions and Access Endpoints.​
  • Before creating a storage bucket, you must ensure that your account has the tos:CreateBucket permission. You can grant the corresponding permissions through IAM policies. For detailed steps, please refer to IAM policies.​
Sample Code​
Specify the ACL when creating a bucket.​
​
package main​
​
import (​
"context"​
"fmt"​
"os"​
​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos"​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos/enum"​
)​
​
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 = os.Getenv("TOS_ACCESS_KEY")​
secretKey = os.Getenv("TOS_SECRET_KEY")​
​
endpoint = "https://tos-cn-beijing.volces.com"​
region = "cn-beijing"​
​
bucketName = "*** Provide your bucket name ***"​
)​
​
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
checkErr(err)​
​
acl := enum.ACLPrivate​
​
resp, err := client.CreateBucketV2(context.Background(), &tos.CreateBucketV2Input{​
Bucket: bucketName,​
ACL: acl,​
})​
checkErr(err)​
fmt.Println("create bucket request id: ", resp.RequestID)​
fmt.Println("create bucket response status code: ", resp.StatusCode)​
}​
​
Specifying Storage Type During Creation​
​
package main​
​
import (​
"context"​
"fmt"​
"os"​
​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos"​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos/enum"​
)​
​
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 = os.Getenv("TOS_ACCESS_KEY")​
secretKey = os.Getenv("TOS_SECRET_KEY")​
​
endpoint = "https://tos-cn-beijing.volces.com"​
region = "cn-beijing"​
​
bucketName = "*** Provide your bucket name ***"​
)​
​
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
checkErr(err)​
​
storageClass := enum.StorageClassIa​
​
resp, err := client.CreateBucketV2(context.Background(), &tos.CreateBucketV2Input{​
Bucket: bucketName,​
StorageClass: storageClass,​
})​
checkErr(err)​
fmt.Println("create bucket request id: ", resp.RequestID)​
fmt.Println("create bucket response status code: ", resp.StatusCode)​
}​
​
Specify AZ Type During Creation​
​
package main​
​
import (​
"context"​
"fmt"​
"os"​
​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos"​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos/enum"​
)​
​
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 = os.Getenv("TOS_ACCESS_KEY")​
secretKey = os.Getenv("TOS_SECRET_KEY")​
​
endpoint = "https://tos-cn-beijing.volces.com"​
region = "cn-beijing"​
​
bucketName = "*** Provide your bucket name ***"​
)​
​
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
checkErr(err)​
​
azRedundancy := enum.AzRedundancyMultiAz​
​
resp, err := client.CreateBucketV2(context.Background(), &tos.CreateBucketV2Input{​
Bucket: bucketName,​
AzRedundancy: azRedundancy,​
})​
checkErr(err)​
fmt.Println("create bucket request id: ", resp.RequestID)​
fmt.Println("create bucket response status code: ", resp.StatusCode)​
}​
​
Relevant Documentation​
For API documentation on bucket creation, refer to CreateBucket.​
Last updated: 2025.09.19 17:30:19