存储许多小文件(在 S3 上)?

Buf*_*alo 6 amazon-s3 amazon-web-services

我每天添加 200 万个压缩的 HTML 文件(100-150KB),我需要长时间存储这些文件。热数据(70-1.5 亿)被半定期访问,任何比这更旧的数据几乎都不会被访问。

这意味着我每天要额外存储 200-300GB 的文件。

现在,标准存储的成本为每 GB 0.023 美元,Glacier 的成本为 0.004 美元。

虽然 Glacier 很便宜,但它的问题在于它有额外的成本,所以将 200 万个文件转储到 Glacier 是一个坏主意:

PUT requests to Glacier $0.05 per 1,000 requests

Lifecycle Transition Requests into Glacier $0.05 per 1,000 requests

有没有办法将文件粘合在一起,但可以单独访问它们?

wow*_*in2 5

重要的一点是,如果您需要提供对这些文件的快速访问,那么 Glacier 最多可以在12 小时内为您提供对该文件的访问权限。因此,您能做的最好的事情就是使用S3 Standard \xe2\x80\x93 Infrequent Access(每 GB 0.0125 美元,毫秒级访问)而不是S3 Standard. 也许对于一些真正不使用数据的人来说Glacier。但这仍然取决于您需要该数据的速度。

\n

考虑到这一点,我建议如下:

\n
    \n
  • 由于 html(文本)文件具有良好的压缩级别,因此您可以将历史数据压缩为大 zip 文件(每日、每周或每月),因为它们一起可以具有更好的压缩效果;
  • \n
  • 制作一些索引文件或数据库以了解每个 html 文件的存储位置;
  • \n
  • 只从档案中读取所需的 html 文件,而不解压整个 zip 文件。请参阅python 中的示例如何实现它。
  • \n
\n