我使用aws-sdk生成了预先签名的PUT URL。然后我将它传递到前端,我使用表单控件上传文件。我解析预先签名的url来获取像AWSAccessKeyId,Signature等标记,并创建一个名为postData的JSON对象。然后我使用Angular $ http服务来调用带有预签名URL的发布请求。但是,当我这样做时,我从S3收到403错误,说这是禁止的。我在S3上启用了CORS并允许GET,PUT和POST请求。任何人都可以帮助使用需要在Angular中使用的代码段。
var postData = {
AWSAccessKeyId: parms.AWSAccessKeyId[0],
'x-amz-acl': parms['x-amz-acl'][0],
Signature: parms.Signature[0],
Expires: parms.Expires[0],
'Content-Type': parms['Content-Type'][0],
file: file,
key: key
};
$http.post(preSignedPostUrl, postData)
.success(function(data) {
console.log('success');
})
.error(function(data) {
});