Загрузка объекта из облачного хранилища Google методом get - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь загрузить объект из корзины облачного магазина Google, используя метод 'get', как описано здесь https://cloud.google.com/storage/docs/json_api/v1/objects/get

Там написано, что он "Извлекает объект или его метаданные"

Я хочу использовать API для загрузки объекта, как указано в документации, но все, что я могу получить, - это дикт, содержащий метаданные для объекта.

Я пытался использовать selfLink и mediaLinkПредоставляется в метаданных, но безрезультатно.

http_request=resource.objects().get(bucket='bucket-name',object='Object-name')
http_response=http_request.execute()

Ресурс является действительным аутентифицированным объектом ресурса, так как другие методы работают нормально.

Теперь я знаю, что могу использовать API-интерфейс клиента Python длязагрузить объект, но есть ли способ сделать это, используя метод 'get'?Или я упускаю что-то очевидное (что возможно, поскольку я новичок в gcp)

1 Ответ

2 голосов
/ 03 июля 2019

Как вы сказали, этот запрос get может получить объект или метаданные объекта внутри вашего сегмента. Используя вызов, которым вы поделились, он получит только метаданные. Если вы хотите получить объект, вы должны указать пункт назначения с флагом «-o», команда должна выглядеть следующим образом:

curl -X GET \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -o "[SAVE_TO_LOCATION]" \
    "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?alt=media"

Помните, что если вы хотите сгенерировать токен, вы можете сгенерировать его с помощью следующей команды:

gcloud beta auth application-default print-access-token
...