Golang 上传 Base64 图片到阿里云 OSS - 完整代码示例
Golang 上传 Base64 图片到阿里云 OSS - 完整代码示例
本文将提供一个完整的 Golang 代码示例,展示如何将 Base64 编码的图片上传到阿里云 OSS 存储空间。
代码示例:
package main
import (
"encoding/base64"
"fmt"
"io/ioutil"
"os"
"strings"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
endpoint := '<your-endpoint>'
accessKeyId := '<your-access-key-id>'
accessKeySecret := '<your-access-key-secret>'
bucketName := '<your-bucket-name>'
objectKey := '<your-object-key>'
base64Image := '<your-base64-image>'
// 解码 base64 图片数据
imageData, err := base64.StdEncoding.DecodeString(strings.Split(base64Image, ',')[1])
if err != nil {
fmt.Println('failed to decode base64 image:', err)
os.Exit(1)
}
// 创建 OSS 客户端对象
client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
if err != nil {
fmt.Println('failed to create oss client:', err)
os.Exit(1)
}
// 获取存储空间
bucket, err := client.Bucket(bucketName)
if err != nil {
fmt.Println('failed to get bucket:', err)
os.Exit(1)
}
// 上传图片数据
err = bucket.PutObject(objectKey, ioutil.NopCloser(strings.NewReader(string(imageData))))
if err != nil {
fmt.Println('failed to upload image:', err)
os.Exit(1)
}
fmt.Println('image uploaded successfully')
}
参数说明:
endpoint:OSS 服务的访问域名。accessKeyId:阿里云账户的 AccessKeyId。accessKeySecret:阿里云账户的 AccessKeySecret。bucketName:存储图片的 OSS 存储空间名称。objectKey:存储图片的 OSS 对象名称。base64Image:base64 编码的图片数据,格式为data:image/png;base64,xxxxxxx。
代码解读:
- 解码 Base64 图片数据:使用
base64.StdEncoding.DecodeString()方法解码 Base64 编码的图片数据。 - 创建 OSS 客户端对象:使用
oss.New()方法创建 OSS 客户端对象,需要传入endpoint、accessKeyId和accessKeySecret。 - 获取存储空间:使用
client.Bucket()方法获取指定名称的存储空间。 - 上传图片数据:使用
bucket.PutObject()方法将图片数据上传到指定对象。
运行代码后,即可将 Base64 编码的图片上传到阿里云 OSS。
注意:
- 请确保已安装阿里云 OSS Go SDK:
go get github.com/aliyun/aliyun-oss-go-sdk/oss - 将代码中的占位符替换为您的实际参数。
原文地址: https://www.cveoy.top/t/topic/lH2c 著作权归作者所有。请勿转载和采集!