我正在关注如何将图像文件上传到S3存储桶的tutorial。但是,指定的S3存储桶中不会显示任何文件。如教程中所述,我发送一个“putobject”请求以获取“签名网址”作为响应。
s3bucket.getSignedUrl('putObject', s3_params, function(err, data){
// Error...
else{
var return_data = { requestUrl: data };
res.json( generalResponse( return_data ));
}
然后我将return_data变量传递给 XMLHttpRequest 的实例 提出看跌请求。
xhr.open("PUT", signed_request);
Express和S3中的CORS配置如下所示:
快递:
app.use(function(req, res, next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
S3 Bucket:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
没有出现在nodeman shell或控制台中的语法错误或服务器错误。我认为必须存在一些配置问题阻止文件从客户端上传到S3。 我非常感谢你对这个问题的帮助。