本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 适用于 Go 的 AWS SDK
适用于 Go 的 AWS SDK 需要 Go 1.20 或更高版本。你可以通过运行以下命令来查看你当前的 Go 版本:
go version
有关安装或升级 Go 版本的信息,请参阅 https://golang。 org/doc/install
注册一个亚马逊账户
在使用 适用于 Go 的 AWS SDK v2 之前,您必须拥有 Amazon 账户。请参阅如何创建和激活新 AWS 账户?
安装 适用于 Go 的 AWS SDK v2
适用于 Go 的 AWS SDK v2 使用 Go 模块,这是 Go 1.11 中引入的一项功能。运行以下 Go 命令来初始化本地项目。
go mod init example
初始化 Go 模块项目后,您将能够使用go get
命令检索SDK及其所需的依赖项。这些依赖关系将记录在上一个命令创建go.mod
的文件中。
以下命令显示如何检索要在应用程序中使用的标准SDK模块集。
go get github.com/aws/aws-sdk-go-v2 go get github.com/aws/aws-sdk-go-v2/config
这将检索核心SDK模块和用于加载 AWS 共享配置的配置模块。
接下来,您可以安装应用程序所需的一个或多个 AWS 服务API客户端。所有API客户端都位于github.com/aws/aws-sdk-go-v2/service
导入层次结构下。可以在此处go.mod
文件中记录依赖关系。在本示例中,我们检索了 Amazon S3 API 客户端。
go get github.com/aws/aws-sdk-go-v2/service/s3
获取您的 AWS 访问密钥
访问密钥包含访问密钥 ID 和秘密访问密钥,用于签署对 AWS发出的编程请求。如果您没有访问密钥,则可以使用AWS
管理控制台
注意
要创建访问密钥,您必须拥有执行 IAM 所需操作的权限。有关更多信息,请参阅《IAM用户指南》中的授予用户管理密码策略和凭证的IAM权限。
获取您的访问密钥 ID 和私有访问密钥。
-
打开 IAM 控制台
-
在导航菜单上,选择用户。
-
选择您的IAM用户名(不是复选框)。
-
打开安全凭证选项卡,然后选择创建访问密钥。
-
要查看新的访问密钥,请选择显示。您的凭证与下面类似:
-
访问密钥 ID:
AKIAIOSFODNN7EXAMPLE
-
秘密访问密钥:
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
-
-
要下载密钥对,请选择 Download .csv file(下载 .csv 文件)。将密钥存储在安全位置。
警告
对密钥保密以保护您的 AWS 帐户,切勿与组织以外的任何人共享。
相关 主题
调用操作
安装完成后SDK,您可以将 AWS 包导入 Go 应用程序以使用导入SDK、Config 和 Amazon S3 库的,如以下示例所示。 AWS导入SDK软件包后,将加载 AWS SDK共享配置,构造客户端,并调用API操作。
package main
import (
"context"
"log"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/s3"
)
func main() {
// Load the Shared AWS Configuration (~/.aws/config)
cfg, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
log.Fatal(err)
}
// Create an Amazon S3 service client
client := s3.NewFromConfig(cfg)
// Get the first page of results for ListObjectsV2 for a bucket
output, err := client.ListObjectsV2(context.TODO(), &s3.ListObjectsV2Input{
Bucket: aws.String("amzn-s3-demo-bucket
"),
})
if err != nil {
log.Fatal(err)
}
log.Println("first page results")
for _, object := range output.Contents {
log.Printf("key=%s size=%d", aws.ToString(object.Key), object.Size)
}
}