Node.js 从Node和Express后端将文件上载到S3
我下面是一篇关于如何将图像文件上传到S3存储桶的文章。但是,指定的S3存储桶中没有显示任何文件。如本教程所述,我发送了一个“putobject”请求,以获取一个“签名url”作为响应Node.js 从Node和Express后端将文件上载到S3,node.js,express,amazon-s3,Node.js,Express,Amazon S3,我下面是一篇关于如何将图像文件上传到S3存储桶的文章。但是,指定的S3存储桶中没有显示任何文件。如本教程所述,我发送了一个“putobject”请求,以获取一个“签名url”作为响应 s3bucket.getSignedUrl('putObject', s3_params, function(err, data){ // Error... else{ var return_data = { requestUrl: data }; res.json(
s3bucket.getSignedUrl('putObject', s3_params, function(err, data){
// Error...
else{
var return_data = { requestUrl: data };
res.json( generalResponse( return_data ));
}
然后我将return_数据变量传递给XMLHttpRequest
发出put请求
xhr.open("PUT", signed_request);
Express和S3中CORS的配置如下所示:
Express:
app.use(function(req, res, next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
<?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>
S3存储桶:
app.use(function(req, res, next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
<?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>
*
得到
邮递
放
3000
授权
nodemanshell或控制台中都没有出现语法错误或服务器错误。我认为一定有一些配置问题阻止文件从客户端上传到S3。
我非常感谢你在这个问题上的帮助 几项健全性检查:也许,看看它的代码,或者尝试一下,这会对你有所帮助。几项健全性检查:也许,看看它的代码,或者尝试一下,这会对你有所帮助。