2017-04-24 49 views
0
上传多张图片到Amazon S3

我想多张图片上传到Amazon S3和使用Sails.js framework.This是我的代码:我不能使用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这里我使用的是队长-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

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

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

你的区域可以位于其他位置比美国西2.在这种情况下,无论是在美国西2创建一个新的水桶,或者找到您所在地区的代码(例如:美国西-1,我们-east-1)。