2012-07-22 100 views
2

我有5個不同的進程在EC2上的不同虛擬機(VM)上運行,從而創建5個不同的文件(f1.txt,f2.txt,f3.txt,f4.txt,f5.txt)。這些虛擬機大致同時啓動,但會在不同的時間完成。連接Amazon S3存儲桶中的文件

我需要

〜等待這5個文件寫出

〜合併它們和例如創建一個新文件 f.txt = f1.txt + f2.txt + f3.txt + f4.txt + f5.txt

〜問題: #我如何確定當所有5個文件已經準備好,並寫出來? #我可以使用s3cat或類似的命令行工具來做到這一點嗎? s3cat 與Unix的貓有相似的語義 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)供下游進程使用。


回答

1

如果您知道用於上傳5個文件的密鑰的名稱,則可以爲它們進行輪詢。如果你知道python,boto是與s3接口的一個很好的模塊,並且可以處理上面的問題。此外,s3確保文件在其完全上傳之前不會出現在其他客戶端上,因此您不必擔心讀取部分文件。

如果您已經在使用它檢查文件,Boto也是連接輸出的好方法。

0

認爲要使用多上傳,而非上傳一堆文件和catting他們

相關問題