При использовании GCS Fuse для монтирования корзины, использующей ключи шифрования, управляемые клиентом, вы можете записывать в корзину, но не можете ничего читать.
Когда вы запускаете ls против точки монтирования, вы получаете
ls: чтение каталога '.': ошибка ввода / вывода.
При установке с флажками:
--foreground --debug_gcs --debug_fuse
ты получаешь:
Использование точки монтирования: ~ / GCSFuse
Открытие соединения с GCS ...
Открытие ведра ...
gcs: Req 0x0: <- ListObjects ()
gcs: Req 0x0: -> ListObjects () (251.743664ms): toObjects: toObject ("'object' /"): неправильная длина для декодированного поля Crc32c: 0
gcs: Req 0x1: <- ListObjects ()
gcs: Req 0x1: -> ListObjects () (63.26159ms): toObjects: toObject ("'object' /"): неправильная длина для декодированного поля Crc32c: 0
ВНИМАНИЕ, ведро не работает: toObjects: toObject ("'objecy'"): Неверная длина для декодированного поля Crc32c: 0
Монтирование файловой системы ...
mountWithArgs: mountWithConn: Mount: mount: running fusermount: статус выхода 1
Я тестировал этот сценарий и смог воспроизвести не только эту проблему с помощью «ls», но и целую серию несоответствий с другими командами, что привело меня к созданию как внутренней ошибки для команды разработчиков Google, так и общедоступного средства отслеживания проблем:
https://issuetracker.google.com/issues/123400061
Я обновлю этот пост, как только у меня появятся новости. Между тем, не стесняйтесь проверять общедоступное описание ошибки и добавлять любые комментарии или новые выводы к этому сообщению.