继续学习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"
});
Run Code Online (Sandbox Code Playgroud)
在Go s3库中,我看到了使用s3存储桶所需的所有功能,但我找不到连接功能 - 与上面的相似.
到目前为止,我在Docs中找到了这个:
type Auth struct {
AccessKey, SecretKey string
}
Run Code Online (Sandbox Code Playgroud)
似乎我需要调用此函数:
func EnvAuth() (auth Auth, err error)
Run Code Online (Sandbox Code Playgroud)
这是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
}
Run Code Online (Sandbox Code Playgroud)
在S3文档中,我看到了我需要的所有东西.我只是不确定我是如何使用库的,这是我第一次使用Go库.
有关连接到AWS/S3,然后进行删除调用的指南将非常有用!
非常感谢 :)
top*_*kip 25
这可能比你想象的要容易.此示例代码列出了一个存储桶.您必须使用您的凭据和存储桶名称,当然......
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)
}
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*ood 12
原帖使用goamz库.AWS维护着应该使用的官方aws-sdk-go库.
请参阅以下示例中的connect方法,该方法使用来自AWS的官方Go sdk列出特定存储桶中的所有密钥:
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
func main() {
svc := s3.New(session.New(), &aws.Config{Region: aws.String("us-east-1")})
params := &s3.ListObjectsInput{
Bucket: aws.String("bucket"),
}
resp, _ := svc.ListObjects(params)
for _, key := range resp.Contents {
fmt.Println(*key.Key)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10776 次 |
| 最近记录: |