我正在尝试使用预先编写的网址将文件上传到S3,直到几分钟前我认为有可能(有关于此问题的文档),但我刚刚在S3开发人员指南中遇到过这句话:< / p>
Query string authentication is not supported for POST
我缺少什么, 顺便说一句,我试图使用goamz(AWS的非官方golang SDK)这样做,并且我不断收到签名错误。
编辑:到目前为止,我想出了签名,所以我可以签署GET,POST,PUT的URL(我没有尝试过DELETE或PATCH,如果它们在亚马逊部分得到支持,它们也可以正常工作),对吧现在我的问题是我在PUT之后得到零大小的对象),当我使它工作时我会在这里发布代码。EDIT2:正如@Basssethog下面提到的那样,这个问题现在在官方的go-SDK中解决了
答案 0 :(得分:1)
我知道它支持PUT
,GET
和DELETE
请求,但签名变得有点棘手。我知道官方的PHP和Ruby SDK都有支持;可能还有其他官方SDK。
您可以将实施移植到Go。
答案 1 :(得分:1)
现在aws-sdk-go SDK已经解决了这个问题:
svc := s3.New(nil)
req, _ := svc.PutObjectRequest(&s3.PutObjectInput{
Bucket: aws.String("myBucket"),
Key: aws.String("myKey"),
Body: strings.NewReader("EXPECTED CONTENTS"),
})
str, err := req.Presign(15 * time.Minute)
log.Println("The URL is:", str, " err:", err)
Soure:http://zqsmm.qiniucdn.com/data/20150717110412/index.html
答案 2 :(得分:0)
记录是可能的,
我实际上已经去了,并为goamz的代码做出了贡献,在这里找到它:
https://github.com/crowdmob/goamz