AWS S3 Javascript SDK - 在浏览器中使用密钥和密钥从私有存储桶下载文件

时间:2016-09-19 00:39:10

标签: javascript amazon-s3

我在S3私有存储桶中有csv文件,我已经创建了访问密钥。我在Python中成功使用密钥和密钥将csv文件下载到磁盘。

现在我正在尝试AWSJavaScriptSDK在浏览器中使用JavaScript来检索csv文件。

请注意,这是我将仅在我的计算机上使用的内容,因此不关心页面中是否有密钥和密码。

我已正确设置CORS,并且使用下面的脚本成功获取文件名。我还尝试了这个代码的变体,列出了桶中的所有文件,它们也有效。所以我正在验证并正确访问存储桶。

但我找不到任何非Node.js示例来检索csv文件并使用浏览器中的AWSJavaScriptSDK for JavaScript将其下载到磁盘。

<div id="status"></div>
<ul id="objects"></ul>

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.6.3.min.js"></script>

 <script type="text/javascript">

    AWS.config.accessKeyId = 'xxxxxxxxxxxxxxxxx';
    AWS.config.secretAccessKey = 'xxxxxxxxxxxxxxxxx';
    AWS.config.region = 'us-east-1';

    // create the AWS.Request object
    var bucket = new AWS.S3();

    bucket.getObject({
        Bucket: 'xxxxxxxxxxxxxxx', 
        Key: 'filename.csv'})
        .on('success', function(response) {               
            console.log("Key was", response.request.params.Key );
        }).send();    


</script>

我的最终目标是在D3.js和图表数据中使用csv文件。

如何将csv放到磁盘上,甚至更好地将其传输到浏览器中?

1 个答案:

答案 0 :(得分:1)

以下应打印对象的内容。获得内容后,您可以在屏幕上放置标记并动态生成下载文件的点击事件,或者解析CSV内容并将其用于D3。

bucket.getObject({
    "Key": prefix
  }, function (error, data) {
    if (error) {
      return console.log(error);
    }
    console.log(data.Body.toString());
  });