gpt4 book ai didi

amazon-s3 - 连接到 S3

转载 作者:IT老高 更新时间:2023-10-28 13:04:29 28 4
gpt4 key购买 nike

正在学习Go,正在编写一个管理图片的组件。

我一直在这里查看 s3 库:https://godoc.org/launchpad.net/goamz/s3#ACL

在 Node 中,我使用 Knox 客户端并像这样连接到我的存储桶:

    var bucket = knox.createClient({
key: config.get('AWS_KEY'),
secret: config.get('AWS_SECRET'),
bucket: "bucketName"
});

在 Go s3 库中,我看到了使用 s3 存储桶所需的所有函数,但我找不到连接函数 - 类似于上面的这个。

到目前为止,我在文档中找到了这个:

    type Auth struct {
AccessKey, SecretKey string
}

看来我需要调用这个函数:

    func EnvAuth() (auth Auth, err error)

这是 EnvAuth 函数:

    func EnvAuth() (auth Auth, err error) {
auth.AccessKey = os.Getenv("AWS_ACCESS_KEY_ID")
auth.SecretKey = os.Getenv("AWS_SECRET_ACCESS_KEY")
// We fallback to EC2_ env variables if the AWS_ variants are not used.
if auth.AccessKey == "" && auth.SecretKey == "" {
auth.AccessKey = os.Getenv("EC2_ACCESS_KEY")
auth.SecretKey = os.Getenv("EC2_SECRET_KEY")
}
if auth.AccessKey == "" {
err = errors.New("AWS_ACCESS_KEY_ID not found in environment")
}
if auth.SecretKey == "" {
err = errors.New("AWS_SECRET_ACCESS_KEY not found in environment")
}
return
}

在 S3 文档中,我看到了我需要的所有内容。我只是不确定如何使用该库,这是我第一次使用 Go 库。

关于连接到 AWS/S3 然后进行删除调用的指南将非常有帮助!

非常感谢:)

最佳答案

这可能比您想象的要容易。此示例代码列出了一个存储桶。当然,您必须使用您的凭据和存储桶名称...

package main

import (
"fmt"
"launchpad.net/goamz/aws"
"launchpad.net/goamz/s3"
"log"
)

func main() {
auth := aws.Auth{
AccessKey: "ASDFASDFASDFASDK",
SecretKey: "DSFSDFDWESDADSFASDFADFDSFASDF",
}
euwest := aws.EUWest

connection := s3.New(auth, euwest)
mybucket := connection.Bucket("mytotallysecretbucket")
res, err := mybucket.List("", "", "", 1000)
if err != nil {
log.Fatal(err)
}
for _, v := range res.Contents {
fmt.Println(v.Key)
}
}

关于amazon-s3 - 连接到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22867013/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com