2016-05-17 81 views
1

我們正在使用Google Cloud Storage和gsutil命令。我們想用rsync同步一個包含許多文本文件的大目錄,並且我們希望這些文件的一些被壓縮,並將其Content-Encoding設置爲gzip。看起來我們只能在使用gsutil rsync時設置Content-Encoding(使用-h全部文件,這是一個令人失望的文件。我們的一些文件是圖片,我們不想壓縮。如何使用Google雲端存儲將rsync設置爲gzip文件?

或者,我們想在上運行一個rsync,只從目的地刪除什麼不再在源模式下。我們也不想上傳。我們只想從GCS中刪除本地源目錄中不再有的內容。但是,我沒有找到這個選擇。

回答

1

gsutil rsync命令不支持上傳時壓縮文件的選項(即類似於gsutil cp -z選項)。我們考慮添加這樣一個選項,但它會產生很多複雜性和潛在的令人驚訝的行爲(例如,在與使用gsutil cp -z上傳的對象進行同步時)。

此外,我不認爲您在第二段中陳述的方式手動設置Content-Encoding會按照您期望的方式工作。做這樣的事情:

gsutil -h Content-Encoding:gzip rsync ... 

會導致對象沒有被gzip壓縮,但仍然具有內容編碼元數據集 - 那麼這將混淆下載時的Content-Encoding頭充當用戶代理(如瀏覽器) 。

您是否考慮過在源代碼中壓縮要壓縮的文件?如果你不能在源文件中保留壓縮的文件,你可以編寫一個shell腳本將所有內容複製到臨時目錄,壓縮你想壓縮的文件,然後從那裏運行gsutil rsync?

相關問題