gpt4 book ai didi

amazon-web-services - AWS S3 的小文件问题

转载 作者:行者123 更新时间:2023-12-04 15:46:34 24 4
gpt4 key购买 nike

我有一个应用程序

每天生成 1 百万到 1 亿个甚至更多的小 xml 文件,我必须将其加载到 S3 存储桶之一中,就像仅在单个 xml 文件中一样。
该 S3 存储桶链接到 CloudFront,以便我们世界各地的客户可以更快地访问 xml 文件。

除了成本部分,对我来说一切都很好。
随着文件数量的增加,S3 put 请求的成本每天都在增加。
文件一出现就应该被推送,并且应该可以从 cloudFront 访问。

有什么解决方案可以节省我的成本吗?
xml 文件的大小最大为 2 kb。

让我在这里详细说明我迄今为止尝试过的一些要点。
我想在本地合并所有小 xml,然后将其推送到 S3,但问题是我们应该在 AWS 中进行一些计算以将其重新提取为小文件,因为最终用户将只接受单个 xml 文件。
提取和创建小文件并再次保存到 S3 将花费更多。

所以请随意推荐一些其他系统而不是 S3 可能适合这个用例。
我也尝试过 HBASE,但在 AWS 中运行和管理 HBASE 是一个问题。
我们也尝试过 Dynamo DB,但这也花费更多。

最佳答案

API 调用按对象收费,无论其大小如何。上传 1 字节的成本与上传 1GB 的成本相同。所以通常小对象会导致API成本飙升。

在以下场景中,您可以批处理多个对象并将其作为单个文件上传到 S3 Bucket。

接下来,您需要编写一个 Lambda 函数(无服务器架构)将上传的文件解压缩到同一个存储桶中。

由于您已经提到您的所有最终用户都将仅访问 XML 文件。所以你应该上传一个批处理文件并使用 Lambda 函数将它们全部提取到同一个存储桶中。

这将节省您的 PUT 数据传输成本。

Sample Code for Lambda for unzip

关于amazon-web-services - AWS S3 的小文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55507234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com