1. 导入依赖
首先,你需要导入阿里云 OSS 的 Go SDK 包,以便在你的 Go 项目中使用。你可以在你的项目目录下运行以下命令来下载依赖:
go get github.com/aliyun/aliyun-oss-go-sdk/oss
2. 配置连接
在你的 Go 代码中,首先创建一个连接阿里云 OSS 的函数,例如 Connect()
,用于配置连接参数,如 Endpoint、Access Key ID 和 Access Key Secret。这些参数可以在阿里云的控制台上获取。
package OSS
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"os"
)
var (
Client *oss.Client // 公共的 OSSClient 实例
Bucket *oss.Bucket // 公共的 Bucket 实例
)
func handleError(err error) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func Connect() {
endpoint := "http://oss-cn-nanjing.aliyuncs.com"
accessKeyId := "YourAccessKeyId"
accessKeySecret := "YourAccessKeySecret"
bucketName := "YourBucketName"
// 创建OSSClient实例。
client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
if err != nil {
handleError(err)
}
// 获取Bucket
bucket, err := client.Bucket(bucketName)
if err != nil {
handleError(err)
}
// 将创建的 Client 和 Bucket 实例保存到全局变量中,以便在整个应用程序中使用。
Client = client
Bucket = bucket
}
3. 使用阿里云 OSS
一旦连接配置完成,你就可以使用 Client
和 Bucket
对象来执行各种操作,比如上传、下载文件,生成签名 URL 等。以下是一些基本的示例:
上传文件到 OSS
func UploadFile(localFilePath string, remoteObjectName string) error {
// 打开本地文件
file, err := os.Open(localFilePath)
if err != nil {
return err
}
defer file.Close()
// 上传文件到 OSS
err = Bucket.PutObject(remoteObjectName, file)
return err
}
生成签名 URL
func GetSignedURL(objectName string) (string, error) {
// 签名 URL 的有效时间,单位为秒
expiresInSeconds := 3600
// 生成签名 URL
signedURL, err := Bucket.SignURL(objectName, oss.HTTPGet, int64(expiresInSeconds), oss.Process(""))
if err != nil {
return "", err
}
return signedURL, nil
}
这些是阿里云 OSS 的基本用法示例。你可以根据你的项目需求进一步扩展功能,比如删除文件、列出文件、设置文件 ACL 等。
标签:存储,nil,err,OSS,Bucket,Client,Go,oss From: https://blog.51cto.com/u_16145366/7390598