对象存储
单区域接入点创建成功后,TOS 会自动生成一个别名。您可以将别名分享给其他用户,使其可以通过单区域接入点的别名访问 TOS 内资源。本文介绍使用单区域接入点访问 TOS 内资源的操作步骤。
单区域接入点创建成功后,TOS 会自动生成一个接入点别名。别名始终唯一,无法修改。访问 TOS 的存储桶时,需要在请求中指定存储桶名。通过单区域接入点访问存储桶时,您需要使用别名替代桶名,TOS 会通过别名将请求自动路由到对应存储桶。
通过单区域接入点访问 TOS 时,只支持对 TOS 执行部分操作,详细介绍,请参见单区域接入点支持的 API 操作。
单区域接入点不支持匿名访问。
Host 替换为<别名>.<TOS Endpoint>,其他参数沿用原有配置方式,即可使用单区域接入点访问 TOS 内资源。关于 API 文档的详细介绍,请参见 API 概览。test-01976881ee547ed28a05b5ecaf93****-tosalias 别名下载 ai.png 对象。GET /ai.png HTTP/1.1 Host: test-01976881ee547ed28a05b5ecaf93****-tosalias.tos-cn-beijing.volces.com Date: Fri, 30 Jul 2021 08:05:36 GMT Authorization: authorization string
test-01976881ee547ed28a05b5ecaf93****-tosalias 别名将 TOS 的 example_dir/example.txt 文件下载到本地。package main import ( "context" "fmt" "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") // Bucket 对应的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com endpoint = "https://tos-cn-beijing.volces.com" region = "cn-beijing" // 填写 BucketName bucketName = "test-01976881ee547ed28a05b5ecaf93****-tosalias" // 下载指定文件名的文件 objectKey = "example_dir/example.txt" ctx = context.Background() ) // 初始化客户端 client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey))) checkErr(err) // 下载文件到指定的路径,示例中下载文件到 example_dir/example.txt getObjectToFileOutput, err := client.GetObjectToFile(ctx, &tos.GetObjectToFileInput{ GetObjectV2Input: tos.GetObjectV2Input{ Bucket: bucketName, Key: objectKey, }, FilePath: "example_dir/example.txt", }) checkErr(err) fmt.Println("GetObjectToFile Request ID:", getObjectToFileOutput.RequestID) fmt.Println("GetObjectToFile File Size:", getObjectToFileOutput.ContentLength) }
test-01976881ee547ed28a05b5ecaf93****-tosalias 别名将 TOS 的object1.png 文件下载到本地。./tosutil cp tos://test-01976881ee547ed28a05b5ecaf93****-tosalias/object1.png /Users/Downloads/TOS/tosutil