Jin*_*Jin 8 amazon-s3 amazon-web-services s3cmd
如果我在S3上有一个包含约5000个小文件的目录,有没有办法轻松压缩整个目录并将生成的zip文件留在S3上?我需要这样做,而不必亲自手动访问每个文件.
谢谢!
不,没有灵丹妙药.
(顺便说一句,你必须意识到在S3中没有"目录"这样的东西.只有路径的对象.你可以获得类似目录的列表,但'/'字符不是魔术 - 你可以通过你想要的任何角色获得前缀.)
有人指出,"预先压缩"它们可以帮助下载速度和追加速度.(以重复存储为代价.)
如果下载是瓶颈,听起来就像你正在连续下载.S3可以支持1000个同时连接到同一个对象而不会出汗.您需要运行基准测试以查看最佳连接数,因为来自一个盒子的过多连接可能会被S3限制.当每秒进行1000次连接时,您可能需要进行一些TCP调整.
"解决方案"在很大程度上取决于您的数据访问模式.尝试重新安排问题.如果您的单个文件下载不常见,那么将它们一次100个分组到S3中会更有意义,然后在请求时将它们分开.如果它们是小文件,则将它们缓存在文件系统上可能是有意义的.
或者将所有5000个文件存储为S3中的一个大型zip文件可能是有意义的,并使用可以下载特定范围的zip文件的"智能客户端"以便为各个文件提供服务.(我记得S3支持字节范围.)
我同意@BraveNewCurrency 的回答。
您需要自己的服务器来有效地执行此操作,因为 AWS S3 只是真正意义上的键值存储。
命令行工具将不起作用,因为文件和参数太多。
付费选项
我实际上参与了一个廉价的商业项目,就是这样做的。它们提供 API 和启动您自己的预配置 EC2 拉链服务器的选项。
https://s3zipper.com/
https://docs.s3zipper.com
大型迁移(TB->PB 级)
AWS Snowball
免费选项
您还可以使用以下免费软件包(JavaScript 和 Go(Golang))构建自己的服务器:
https : //github.com/orangewise/s3-zip
https://github.com/DanielHindi/aws-s3-拉链
https://github.com/Teamwork/s3zipper
| 归档时间: |
|
| 查看次数: |
17740 次 |
| 最近记录: |