linux 仅将新对象从S3复制到本地服务器

brccelvz  于 2023-03-29  发布在  Linux
关注(0)|答案(1)|浏览(118)

我有一个S3存储桶,每天从salesforce生成对象。我想将这些对象从S3存储桶复制到本地Linux服务器。应用程序将在该Linux服务器上运行,该服务器将引用这些对象以生成新文件。
我不能使用S3-sync,因为S3存储桶中将驻留数十万个对象。由于这些对象将每天生成,同步将增加大量成本。我只希望将新创建的对象复制到本地服务器。
我正在考虑使用S3 FS或JuiceFS在本地挂载S3 bucket。但我听说将S3挂载到本地服务器并不是一个可靠的解决方案。
有没有可靠安全的方法可以让我们只将新对象复制到本地服务器上?另外,如果我使用S3 FS或JuiceFS将S3挂载到本地服务器上,是否可靠?
先谢谢你了。

yr9zkbsy

yr9zkbsy1#

你可以使用Hadoop的distcp命令和-update选项;它将不会下载本地的和相同长度的文件(在s3和其他存储之间没有校验和比较,所以相等长度被解释为不变。这可以从命令行本地运行;不需要集群。

hadoop distcp -update -numListstatusThreads 40 s3a://mybucket/path file://tmp/downloads

numThreads选项并行目录扫描,这听起来很重要,因为s3 LIST调用只返回几千页,需要时间和金钱。
参见https://hadoop.apache.org/docs/stable/hadoop-distcp/DistCp.html

相关问题