TOS 支持对存储的图片进行处理,包括图片缩放、图片裁剪、图片水印、格式转换等图片处理操作。本文介绍如何通过 TOS Go SDK 进行基础图片处理。
以下代码展示如何将图片高度固定为 100px,图片格式转换为 JPG 格式,然后将图片命名为 temp.jpg,并下载到本地。
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 { 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 = "*** Provide your bucket name ***" // 原图名称 imageKey = "image.png" ctx = context.Background() fileName = "temp.jpg" ) // 初始化客户端 client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey))) checkErr(err) // 请求并增加数据处理 style := "image/resize,h_100/format,jpg" /* 将图片高度固定为 100px,并转为 JPG 格式 */ out, err := client.GetObjectToFile(ctx, &tos.GetObjectToFileInput{GetObjectV2Input: tos.GetObjectV2Input{Bucket: bucketName, Key: imageKey, Process: style}, FilePath: fileName}) checkErr(err) fmt.Println("ContentType:", out.ContentType) }
关于图片处理的详细介绍,请参见图片处理概述。