2015-04-20 65 views
2

我嘗試同步在谷歌雲近線存儲我的本地文件夾,但我得到了以下錯誤:谷歌的gsutil:ASCII編碼解碼器不能編碼字符

"Caught non-retryable exception while listing file:///var/lib/..: 'ascii' codec can't encode character u'\xe9' in position 170: ordinal not in range(128) 
CommandException: Caught non-retryable exception - aborting rsync 
Caught ^C - exiting" 

有沒有什麼解決辦法嗎? 謝謝。

+0

更改您的文件夾的A-ZA-Z0-9名字和一些特殊字符只也避免使用非常大的文件夾名稱,因爲這可能會增加導致錯誤的路徑字符串的長度。 – ZdaR

+0

感謝您的回答anmol_uppal,但我試圖同步一個文件在「A-Za-z0-9」文件夾名稱,但錯誤仍然存​​在,我想它是關於字符編碼與UTF-8不同的。 –

回答

1

它看起來像你有一個重音e - é位於你試圖同步的文件名。

對所有對象名稱和文件名使用UTF-8將確保gsutil在對文件進行操作時不會遇到字符編碼錯誤。不幸的是,由於與gsutil無關的一些原因,上傳/下載這種方式的文件仍然可能存在互操作性問題;例如:在Linux和Windows等不同平臺上覆制文件名。如果您正在使用Windows控制檯,則可以指定通配符或文件夾(使用-R選項),而不是明確命名單個文件以防止出現這種情況。

如果文件太多,可以使用工具將舊字符編碼轉換爲UTF-8。其中一種工具是native2ascii

0

或者,您可以使用https://github.com/minio/mc在S3兼容模式下支持Google Cloud Storage。

mc完全是UTF-8,可以上傳和下載所有已知的UTF-8字符。

通過遵循Google Credentials指南獲取您的AccessKeyID和SecretAccessKey。一旦你讓他們更新你的〜/./mc/config.json配置文件。

$ mc config host add storage.googleapis.com <your_access_key> <your_secret_key> S3v2 

注:谷歌雲存儲只能支持傳統的簽名版本2 :(,所以你必須選擇 - S3v2

相關問題