【问题标题】:upload to S3 bucket上传到 S3 存储桶
【发布时间】:2017-04-19 04:35:09
【问题描述】:

我是 Elastic Beanstalk 的新手,刚刚上传了一个 NodeJs 应用程序。 我想知道是否可以将文件夹“链接”(如 unix 符号链接)到 S3 存储桶?

将“/recordings”指向 S3:

var filename = 'recordings/' + match[1] + '.wav';
      var file = fs.createWriteStream(filename);
      var request = https.get(url, function(response) {
          response.pipe(file);
          file.on('finish', function() {
            file.close();
      }).on('error', function(err) {
        fs.unlink(file);
        console.log('error downloading recording');
      });

【问题讨论】:

  • 不,这是不可能的,因为 S3 不是文件存储,而是对象存储(亚马逊称其为 Internet 存储),它的目的是通过其 REST API(或 SDK在后台使用 REST API),因此它没有文件系统功能。

标签: node.js amazon-web-services amazon-s3 amazon-elastic-beanstalk


【解决方案1】:

可以使用 s3fs-fuse 之类的工具将 S3 存储桶挂载到您的文件系统。但是,通常不建议这样做,因为 S3 并非旨在用作块存储设备。

作为 s3fs 自述文件:

通常 S3 无法提供与本地相同的性能或语义 文件系统。更具体地说:

  • 随机写入或附加到文件需要重写整个文件
  • 列出目录等元数据操作性能不佳 由于网络延迟
  • 最终一致性可以暂时产生 陈旧数据没有文件或目录的原子重命名
  • 没有协调 安装同一个存储桶的多个客户端之间
  • 没有硬链接

在您的 Node 应用程序中使用 S3 的最佳方式是使用 AWS SDK for JavaScript in Node.js

【讨论】:

    猜你喜欢
    • 2015-03-12
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2022-11-05
    • 2022-12-22
    • 2019-04-08
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多