如何创建Presigned put url并使用环境变量来设置Bucket和Key

时间:2018-02-20 00:40:02

标签: amazon-web-services go amazon-s3

我正在使用以下代码创建预先签名的put url:

svc := s3.New(nil)
req, _ := svc.PutObjectRequest(&s3.PutObjectInput{
    Bucket: aws.String("myBucket"),
    Key:    aws.String("myKey"),
})
str, err := req.Presign(15 * time.Minute)

log.Println("The URL is:", str, " err:", err)

但我想从环境变量中获取配置:

CONFIGURATIONS={ "Bucket": "myBucket", "Key": "myKey" }

我只有两个星期的Golang,我主要有Node.js的背景,所以,如果这个问题非常基本,我很抱歉。

为了更好地说明,我正在尝试这样做......但是在Go:

const CONFIGURATIONS = JSON.parse(process.env.CONFIGURATIONS)

const S3 = new AWS.S3()
S3.generatePresignedUrl('putObject', CONFIGURATIONS, callback...)

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您需要从env变量中检索存储桶和密钥名称。这很容易去做。 os包具有GetEnv功能。

假设您的env变量名为AWS_BUCKETAWS_KEY,这是获取值的方法:

bucketName := Getenv("AWS_BUCKET")
key := Getenv("AWS_KEY")

您可以查看包文档here