Мне нужно получить файлы в моем веб-приложении, размер которых превышает 64 КБ. Прямо сейчас, в v1beta1 JSON API, Google разрешает загрузку/выгрузку только размером 64 КБ через свой JSON API. Я понял, как загружать файлы размером более 64 КБ, используя «возобновляемую» загрузку (не через интерфейс, который v1beta1 предоставляет в своем JSON API, а вручную).
Чего я не могу понять, так это хорошего способа скачать. Прямо сейчас я делаю список ACL общедоступным для объекта, который хочу загрузить, загружаю файл, а затем удаляю общедоступный ACL для объекта. Это не только неэффективно, но и не очень чисто. Есть ли лучший метод, который я мог бы использовать, или я застрял, пока Google не предоставит лучшие средства в будущей версии своего API?
Исходная информация Я пишу приложение GAE и знаю интерфейс google.appengine.api.files. К сожалению, это не работает с живыми корзинами при использовании локальной среды разработки, и для целей тестирования моей команде и мне нужен способ тестирования разработки локально (слишком громоздко для развертывания в GAE среди других ограничивающих факторов/факторов безопасности). Мы можем взаимодействовать со всеми другими API, кроме Cloud Storage, поэтому я пишу класс, который будет использовать либо JSON API, либо интерфейс файлов AppEngine при чтении/записи/удалении из Cloud Storage. У меня есть работающая реализация, но я недоволен тем, как я извлекаю файлы.
Пояснение из комментария ниже: мы загружаем большие объемы информации, обрабатываем ее и сохраняем в облачном хранилище для использования в BigQuery. Нам нужно использовать активные сегменты из среды разработки, потому что, если мы этого не сделаем, BigQuery не сможет использовать данные, которые мы хотим протестировать. Не нужно обслуживать эти файлы, просто обработайте их
Решение из комментария к принятому ответу ниже: мне удалось повторно использовать мой аутентифицированный объект httplib2
из моего кода, который взаимодействует с JSON API, чтобы выполнить аутентифицированный запрос GET к конечной точке URL-адреса https://{bucket_name}.storage.googleapis.com/{object_name}
, добавив только Content-Length: 0
и x-goog-api-version: 2
заголовки.