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

代码解读:

  1. 解码 Base64 图片数据:使用 base64.StdEncoding.DecodeString() 方法解码 Base64 编码的图片数据。
  2. 创建 OSS 客户端对象:使用 oss.New() 方法创建 OSS 客户端对象,需要传入 endpointaccessKeyIdaccessKeySecret
  3. 获取存储空间:使用 client.Bucket() 方法获取指定名称的存储空间。
  4. 上传图片数据:使用 bucket.PutObject() 方法将图片数据上传到指定对象。

运行代码后,即可将 Base64 编码的图片上传到阿里云 OSS。

注意:

  • 请确保已安装阿里云 OSS Go SDK:go get github.com/aliyun/aliyun-oss-go-sdk/oss
  • 将代码中的占位符替换为您的实际参数。
Golang 上传 Base64 图片到阿里云 OSS - 完整代码示例

原文地址: https://www.cveoy.top/t/topic/lH2c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录