0
点赞
收藏
分享

微信扫一扫

Go 项目中使用阿里云 OSS 存储服务

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

一旦连接配置完成,你就可以使用 ClientBucket 对象来执行各种操作,比如上传、下载文件,生成签名 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 等。

举报

相关推荐

0 条评论