我正在尝试使用https://cloud.google.com/storage/docs/json_api/v1/objects/get
中所述的“获取”方法从Google云存储桶中下载对象。在其中说“它检索一个对象或其元数据”
我想按照文档中的说明使用API下载对象,但是我所能获得的只是一个包含对象元数据的字典。
我尝试使用元数据中提供的selfLink和mediaLink,但无济于事。
http_request=resource.objects().get(bucket='bucket-name',object='Object-name')
http_response=http_request.execute()
resource是有效的经过身份验证的资源对象,因为其他方法都可以正常工作。
现在我知道我可以使用python客户端api下载对象,但是有没有一种方法可以使用“获取”方法来完成?还是我遗漏了一些明显的东西(可能是因为我是gcp的新手)
答案 0 :(得分:2)
正如您所说,获取请求可以获取存储桶中的对象或对象的元数据。使用共享的调用将仅获取元数据,如果要获取对象,则必须使用“ -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