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

Torch Object Storage

Copy page
Download PDF
Manage Objects
Determining Object Existence (Go SDK)
Copy page
Download PDF
Determining Object Existence (Go SDK)
You can determine whether an object exists by using the Go SDK's HeadObject interface.​
Precautions​
To determine whether an object exists, your account must have the tos:GetObject permission. For detailed instructions, please refer to the Permission Configuration Guide.​
Sample Code​
The following code demonstrates how to determine whether an object exists.​
​
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 = 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 ***"​
​
​
objectKey = "example_dir/example.txt"​
ctx = context.Background()​
)​
​
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
checkErr(err)​
output, err := client.HeadObjectV2(ctx, &tos.HeadObjectV2Input{​
Bucket: bucketName,​
Key: objectKey,​
})​
if err != nil {​
if serverErr, ok := err.(*tos.TosServerError); ok {​
​
if serverErr.StatusCode == http.StatusNotFound {​
fmt.Println("Object 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("HeadObjectV2 Request ID:", output.RequestID)​
​
fmt.Println("HeadObjectV2 Response ContentLanguage:", output.ContentLanguage)​
​
fmt.Println("HeadObjectV2 Response ContentDisposition:", output.ContentDisposition)​
​
fmt.Println("HeadObjectV2 Response ContentEncoding:", output.ContentEncoding)​
​
fmt.Println("HeadObjectV2 Response CacheControl:", output.CacheControl)​
​
fmt.Println("HeadObjectV2 Response ContentType:", output.ContentType)​
​
fmt.Println("HeadObjectV2 Response Expires:", output.Expires)​
}​
​
Relevant Documentation​
For information on the API used to determine whether an object exists, refer to HeadObject.​
Last updated: 2025.09.19 17:30:21