Go (Golang) SDK
官方 smallpict-go 库,专为高并发高吞吐的 Go 微服务量身定制。
SmallPict 官方 Go SDK 提供地道的 API 设计、零内存拷贝的密码学 HMAC 签名计算以及基于 Context 的超时取消控制。
安装方式
Shell
go get github.com/tuxnoob/smallpict-go快速上手示例
Go
package main
import ( "context" "fmt" "os" "time"
smallpict "github.com/tuxnoob/smallpict-go")
func main() { client := smallpict.NewClient( os.Getenv("SMALLPICT_API_KEY"), os.Getenv("SMALLPICT_SECRET_KEY"), smallpict.WithTimeout(30*time.Second), smallpict.WithMaxRetries(3), )
ctx := context.Background()
// 1. 优化图片字节切片 fileBytes, err := os.ReadFile("hero.png") if err != nil { panic(err) }
result, err := client.Optimize(ctx, fileBytes, smallpict.OptimizeOptions{ Format: "avif", Quality: 85, MaxWidth: 1920, }) if err != nil { panic(err) }
fmt.Printf("优化后 URL: %s (节省了 %.2f%%)\n", result.URL, result.SavingsPercentage)
// 2. 查询账户配额 quota, err := client.GetQuota(ctx) if err == nil { fmt.Printf("套餐: %s, 已用配额: %d / %d 字节\n", quota.Plan, quota.BytesUsed, quota.QuotaLimitBytes) }}