使用“获取”方法从Google云存储下载对象

时间:2019-07-03 13:44:07

标签: google-cloud-platform google-cloud-storage

我正在尝试使用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的新手)

1 个答案:

答案 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