我在EC2上的不同虚拟机(VM)上运行了5个不同的进程,创建了5个不同的文件(f1.txt,f2.txt,f3.txt,f4.txt,f5.txt)。这些虚拟机大致在同一时间启动,但将在不同时间完成。
〜等待写出这5个文件
〜合并它们并创建一个新文件,例如 f.txt = f1.txt + f2.txt + f3.txt + f4.txt + f5.txt
〜问题: #如何确定所有5个文件何时准备好并写出? #我可以使用s3cat或类似的命令行工具吗? s3cat 具有与Unix cat类似的语义,例如 cat s3://mybucket/f1.txt> S3://mybucket/f.txt cat s3://mybucket/f2.txt>> S3://mybucket/f.txt cat s3://mybucket/f3.txt>> S3://mybucket/f.txt cat s3://mybucket/f4.txt>> S3://mybucket/f.txt cat s3://mybucket/f5.txt>> S3://mybucket/f.txt
Their examples on GitHub didn’t show this use case.
生成的输出文件(f.txt)供下游进程使用。
答案 0 :(得分:1)
如果您知道正在上传的5个文件所使用的密钥的名称,则只需轮询它们即可。如果你知道python,boto是一个很好的模块,用于与s3接口,并将处理上面的一个cinch。此外,s3确保文件在完全上传之前不会显示给其他客户端,因此您不必担心读取部分文件。
如果您已经使用它来检查文件,Boto也是连接输出的好方法。
答案 1 :(得分:0)
我想你想要使用分段上传,而不是上传一堆文件并抓住它们