"github.com/volcengine/ve-tos-golang-sdk/v2/tos"
func checkErr(err error) {
if serverErr, ok := err.(*tos.TosServerError); ok {
if serverErr.StatusCode == http.StatusNotFound {
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 = os.Getenv("TOS_ACCESS_KEY")
secretKey = os.Getenv("TOS_SECRET_KEY")
endpoint = "https://tos-cn-beijing.volces.com"
bucketName = "*** Provide your bucket name ***"
ctx = context.Background()
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))
listOutput, err := client.ListObjectVersionsV2(ctx, &tos.ListObjectVersionsV2Input{
ListObjectVersionsInput: tos.ListObjectVersionsInput{
VersionIDMarker: versionIdMarker,
for _, obj := range listOutput.Versions {
output, err := client.DeleteObjectV2(ctx, &tos.DeleteObjectV2Input{
VersionID: obj.VersionID,
fmt.Printf("Delete %s, Request ID: %s\n", obj.Key, output.RequestID)
for _, deleteMarker := range listOutput.DeleteMarkers {
output, err := client.DeleteObjectV2(ctx, &tos.DeleteObjectV2Input{
VersionID: deleteMarker.VersionID,
fmt.Printf("Delete deleteMarker %s, Request ID: %s\n", deleteMarker.Key, output.RequestID)
truncated = listOutput.IsTruncated
marker = listOutput.NextKeyMarker
versionIdMarker = listOutput.NextVersionIDMarker
output, err := client.ListMultipartUploadsV2(ctx, &tos.ListMultipartUploadsV2Input{
UploadIDMarker: uploadIDMarker,
for _, upload := range output.Uploads {
abortUpload, err := client.AbortMultipartUpload(ctx, &tos.AbortMultipartUploadInput{
UploadID: upload.UploadID,
fmt.Println("AbortMultipartUpload Upload ID:", upload.UploadID, " Request ID:", abortUpload.RequestID)
truncated = output.IsTruncated
marker = output.NextKeyMarker
uploadIDMarker = output.NextUploadIDMarker