【问题标题】:I can't upload multiple images to Amazon S3 using Sails.js我无法使用 Sails.js 将多个图像上传到 Amazon S3
【发布时间】:2017-04-24 04:00:41
【问题描述】:

我正在尝试将多个图像上传到 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 的存储桶中看不到我的图像。我用一张图片测试了代码,效果很好。

【问题讨论】:

    标签: javascript amazon-s3 sails.js


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-04-28
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 2012-12-20
      • 1970-01-01
      相关资源
      最近更新 更多