我在OSX(或Linux)上使用NOUNZ data compiler,它會自動生成靜態HTML文件的大量目錄結構(數十萬甚至數百萬個文件)。如何使用CLI在AWS S3上正確解壓縮和解壓縮目標和壓縮文件層次結構?
生成的目錄樹的一個簡單的例子看起來像下面...
通常情況下,如果我想整個樹移動到遠程Web服務器,我只是焦油和壓縮樹中,使用這樣的命令:
tar -cvf HTML.tar HTML
gzip HTML.tar
這產生焦油-ED和壓縮文件稱爲HTML.tar.gz
我可以然後FTP或SCP上述文件到所述遠程web服務器,我可以使用下面的命令簡單地解壓縮一個解壓縮該文件:
gzip -d HTML.tar.gz
tar -xvf HTML.tar
這將導致在Web服務器上的完全相同的文件樹這是由本地計算機上的數據編譯器生成的。
問題:我想使用亞馬遜網絡服務(AWS)簡單存儲解決方案(S3)模擬與上述相同的行爲。
我的問題:什麼是模仿相同(或類似的行爲)的最佳途徑,在那裏我可以移動從本地服務器到AWS S3整個焦油編輯和壓縮樹,然後解壓縮和解壓我文件重新創建整個目錄結構?
tar
和gzip
命令不是S3 CLI API的一部分,因此我需要找到一種移動可能包含數百萬個文件(每天可能發生一次)的目錄結構的可靠方法。如果沒有首先進行目標壓縮,移動和重新創建所有內容都會非常緩慢。
注意:僅當數據編譯器運行時,它會刪除整個舊樹並重新生成一個新的樹,從而爲所有目錄和文件創建全新的inode。這意味着「增量」副本和同步不可行。我需要每次移動整棵樹。
你說它重新創建所有文件,但文件內容實際上是否改變?您可以使用md5散列進行同步,以使用'aws s3 sync'命令檢查文件是否實際更改。 –
是的,現有文件的內容可能會改變。編譯器運行時可能發生三種結果:1)可以添加新的文件夾和/或文件; 2)現有文件夾和/或文件可能被刪除; 3)現有的文件內容可能(並且經常)改變;請記住,「AWS s3同步」可能需要很長時間才能在管道中泵送數百萬個文件。 –