作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
正在学习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/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!