从亚马逊 s3 存储桶下载文件的 Javascript?

新手上路,请多包涵

我试图从 Amazon S3 上的存储桶下载文件。我想知道我是否可以编写一个 javascript 来从存储桶中下载这样的文件。我在谷歌上搜索它,但找不到任何可以帮助我做到这一点的资源。

要记住的一些步骤是:验证 Amazon S3,然后通过提供存储桶名称和文件(密钥),下载或读取文件,以便我能够显示文件中的数据。

谢谢,

原文由 c0mrade 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

也许您可以使用 AWS Node.js API

 var AWS = require('aws-sdk');
AWS.config.update(
  {
    accessKeyId: ".. your key ..",
    secretAccessKey: ".. your secret key ..",
  }
);
var s3 = new AWS.S3();
s3.getObject(
  { Bucket: "my-bucket", Key: "my-picture.jpg" },
  function (error, data) {
    if (error != null) {
      alert("Failed to retrieve an object: " + error);
    } else {
      alert("Loaded " + data.ContentLength + " bytes");
      // do something with data.Body
    }
  }
);

原文由 yegor256 发布,翻译遵循 CC BY-SA 3.0 许可协议

我来这里是为了在客户端下载一个 s3 文件。这是我解决它的方法:

因为,我不能在客户端存储我的 s3 授权密钥,我使用我的服务器端脚本生成一个预签名的 url 并将它发送回客户端,如:

 const AWS = require('aws-sdk')

const s3 = new AWS.S3()
AWS.config.update({accessKeyId: 'your access key', secretAccessKey: 'you secret key'})

const myBucket = 'bucket-name'
const myKey = 'path/to/your/key/file.extension'
const signedUrlExpireSeconds = 60 * 5 // your expiry time in seconds.

const url = s3.getSignedUrl('getObject', {
 Bucket: myBucket,
 Key: myKey,
 Expires: signedUrlExpireSeconds
})

// return the url to client

在前端使用这个 URL 来触发下载:

 function download(url){
    $('<iframe>', { id:'idown', src:url }).hide().appendTo('body').click();
}
$("#downloadButton").click(function(){
    $.ajax({
        url: 'example.com/your_end_point',
        success: function(url){
            download(url);
        }
    })
});

原文由 Sahith Vibudhi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题