最近更新时间:2026-11-11 10:30:12
以下代码用于对图片进行处理,处理结果直接作为响应体返回:
package main
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
"io"
)
func main() {
// 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
// 创建KS3客户端,更多配置项请查看初始化文档
client := s3.New(&aws.Config{
Credentials: cre, // 访问凭证
Region: "BEIJING", // 访问地域
Endpoint: "ks3-cn-beijing.ksyuncs.com", // 访问域名
})
// 填写存储空间名称
bucket := "<bucket_name>"
// 源图片对象的Key
objectKey := "image/source.jpg"
// 图片处理
resp, err := client.GetObject(&s3.GetObjectInput{
Bucket: aws.String(bucket), // 存储空间名称,必填
Key: aws.String(objectKey), // 对象Key,必填
Process: aws.String("image/resize,w_300"), // 图片处理参数,必填
})
if err != nil {
panic(err)
}
defer resp.Body.Close()
// 处理结果为图片二进制,读取响应体
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Printf("图片处理成功,结果大小:%d 字节\n", len(body))
}以下代码用于对图片进行处理并通过 sys/saveas 将结果另存到指定桶:
package main
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
)
func main() {
// 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
// 创建KS3客户端,更多配置项请查看初始化文档
client := s3.New(&aws.Config{
Credentials: cre, // 访问凭证
Region: "BEIJING", // 访问地域
Endpoint: "ks3-cn-beijing.ksyuncs.com", // 访问域名
})
// 填写存储空间名称
bucket := "<bucket_name>"
// 源图片对象的Key
objectKey := "image/source.jpg"
// 处理产物存放的目标桶
saveAsBucket := "<saveas_bucket>"
// 处理产物存放的对象Key
saveAsKey := "output/resized.jpg"
// 处理参数:缩放到宽度300px,并另存到指定桶
process := "image/resize,w_300|sys/saveas,b_" + s3.GetURLSafeBase64Str(saveAsBucket) + ",o_" + s3.GetURLSafeBase64Str(saveAsKey)
// 图片处理并另存
resp, err := client.ProcessObject(&s3.ProcessObjectInput{
Bucket: aws.String(bucket), // 源对象所在存储空间名称,必填
Key: aws.String(objectKey), // 源对象Key,必填
Process: aws.String(process), // 处理参数,必填
})
if err != nil {
panic(err)
}
fmt.Println("结果:\n", awsutil.StringValue(resp))
}
纯净模式
