我正在尝试将多个图像上传到Amazon S3并使用Sails.js框架。这是我的代码:
Fotos.ejs(是上传照片的视图):
<form enctype="multipart/form-data" id="frmFotos">
<input id="fotos" name="fotos" type="file">
<button type="submit" id="btnUpload">Upload</button>
</form>
Fotos.js(Ajax调用上传)
$('#btnUpload').on('click',function(e){
e.preventDefault();
var formData=new FormData();
formData.append("fotos",$("#fotos")[0].files);
$.ajax({
url:"/upload",
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
console.log(data);
}
});
})
FotoController.js(Sails.js中的控制器,我使用skipper-s3上传文件)
module.exports = {
upload:function(req,res){
var aws={
adapter:require("skipper-s3"),
bucket:"mybucket",
key:"mykey",
secret:"mysecret"
};
req.file("fotos").upload({aws},function whenDone(error,fotos){
if(error)
{
console.log(error);
} else{
fotos.forEach(function(foto){
console.log(foto);
});
}
});
}
}
我认为还有一个额外的任务,因为我无法在S3中看到我的图像。我用单个图像测试代码,这很好。
答案 0 :(得分:0)
您必须指定存储桶所属的区域。例如:
var aws = {
...
region: 'us-west-2'
...
}
您所在的地区可能位于美国西部以外的其他地方2.在这种情况下,要么在美国西部2中创建一个新的存储桶,要么找到您所在地区的代码(例如:us-west-1,us-east-1)。 / p>