我有从不同的机器上传到S3的日志文件(m1_log.txt,m2_log.txt,m3_log.txt)。合并/聚合S3对象
他们上传到存储桶,但我希望能够创建所有三个连接的log.txt。
我正在编写一个脚本,它可以下载所有文件,连接它们,上传它们,然后删除旧的文件,但似乎是浪费了大量的带宽和时间。
有没有办法要么:
- “附加” 的文件上S3?因此,我们可以将每个进程追加到相同的log.txt
- 在s3上每隔x分钟运行一次命令,将它们合并到一起?
我有从不同的机器上传到S3的日志文件(m1_log.txt,m2_log.txt,m3_log.txt)。合并/聚合S3对象
他们上传到存储桶,但我希望能够创建所有三个连接的log.txt。
我正在编写一个脚本,它可以下载所有文件,连接它们,上传它们,然后删除旧的文件,但似乎是浪费了大量的带宽和时间。
有没有办法要么:
你的第一个想法,下载它们,concat,上传和删除是完成这个任务的唯一方法。您不能在S3上“追加文件”或“运行命令”。
这个问题已经在这里找到答案:Merging files on AWS S3 (Using Apache Camel)
这是可能的,如果他们超过5MB更大的合并文件,或者如果他们不就可以伪造出来,所以他们超过5MB更大。这是通过大多数aws SDK中可用的copy_part命令完成的。 Danilop和Joseph Lust的回答是正确的
请不要将链接发布到[重复答案](// meta.stackexchange.com/a/211726/206345)。相反,考虑其他可以帮助未来用户找到他们需要的答案的行动,如链接文章中所述。 – Mogsdad
啊,对不起。我没有意识到这个选择是可用的。 –
[在AWS S3上合并文件(使用Apache Camel)](http://stackoverflow.com/questions/19290103/merging-files-on-aws-s3-using -apache-camel) – Mogsdad