我无法使用Sails.js将多个图像上传到Amazon S3

时间:2017-04-24 04:00:41

标签: javascript amazon-s3 sails.js

我正在尝试将多个图像上传到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中看到我的图像。我用单个图像测试代码,这很好。

1 个答案:

答案 0 :(得分:0)

您必须指定存储桶所属的区域。例如:

var aws = {
    ... 
    region: 'us-west-2'
    ...  
}

您所在的地区可能位于美国西部以外的其他地方2.在这种情况下,要么在美国西部2中创建一个新的存储桶,要么找到您所在地区的代码(例如:us-west-1,us-east-1)。 / p>