Ошибка при загрузке BLOB-объекта хранилища Google: (Получен ответ с кодировкой содержимого: gzip, но не удалось его расшифровать.) - PullRequest
0 голосов
/ 14 мая 2019

Я использую python для загрузки файла, но получаю сообщение об ошибке при загрузке файла из облачного хранилища Google.

Метаданные файла имеют следующий вид: content_type: text / csv content_encoding: расширение файла gzip: * .csv.gz

Получение следующего исключения: exceptions.ContentDecodingError: 'Получен ответ с кодировкой содержимого: gzip, но не удалось его декодировать.'

Использование следующего API-интерфейса python для загрузки файла.blob.download_to_filename (имя_файла, start = 100)

Вопрос: 1. Как скачать, если исходный файл имеет атрибуты метаданных выше?(gzip как кодировка содержимого) 2. Как распаковать файл при копировании (gsutil cp)?

1 Ответ

0 голосов
/ 18 мая 2019
  1. Получен ответ с кодировкой содержимого: gzip, но не удалось его расшифровать.

Сейчас вы можете обойти это, установив для заголовка Accept-Encoding значение:

запросы на импорт

request.get ('http://XXXXX/', headers = {' Accept-Encoding ':' identity '})

Альтернативное решение Решение состоит в нормализациизаголовок:

if (req.http.Accept-Encoding ~ «gzip») {

set req.http.Accept-Encoding = «gzip»;

}else {

unset req.http.Accept-Encoding;

}

Не похоже, что есть способ отключить режим автоматической декомпрессии для gsutil cp, для одноразовых сценариев gsutil cat пропустит декомпрессию:

$ gsutil cat gs: //bucket/obj.gz> /destination/path/obj.gz

...