从Node和Express后端将文件上载到S3

时间:2017-07-29 20:00:06

标签: node.js express amazon-s3

我正在关注如何将图像文件上传到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。 我非常感谢你对这个问题的帮助。

0 个答案:

没有答案