2015-11-07 105 views
0

我有从不同的机器上传到S3的日志文件(m1_log.txt,m2_log.txt,m3_log.txt)。合并/聚合S3对象

他们上传到存储桶,但我希望能够创建所有三个连接的log.txt。

我正在编写一个脚本,它可以下载所有文件,连接它们,上传它们,然后删除旧的文件,但似乎是浪费了大量的带宽和时间。

有没有办法要么:

  1. “附加” 的文件上S3?因此,我们可以将每个进程追加到相同的log.txt
  2. 在s3上每隔x分钟运行一次命令,将它们合并到一起?
+1

[在AWS S3上合并文件(使用Apache Camel)](http://stackoverflow.com/questions/19290103/merging-files-on-aws-s3-using -apache-camel) – Mogsdad

回答

0

你的第一个想法,下载它们,concat,上传和删除是完成这个任务的唯一方法。您不能在S3上“追加文件”或“运行命令”。

0

这个问题已经在这里找到答案:Merging files on AWS S3 (Using Apache Camel)

这是可能的,如果他们超过5MB更大的合并文件,或者如果他们不就可以伪造出来,所以他们超过5MB更大。这是通过大多数aws SDK中可用的copy_part命令完成的。 Danilop和Joseph Lust的回答是正确的

+0

请不要将链接发布到[重复答案](// meta.stackexchange.com/a/211726/206345)。相反,考虑其他可以帮助未来用户找到他们需要的答案的行动,如链接文章中所述。 – Mogsdad

+0

啊,对不起。我没有意识到这个选择是可用的。 –