如何使用Rest API下载Google Cloud Storage中的文件

时间:2018-08-20 14:05:53

标签: google-cloud-storage google-apps

场景:与dcm API相关的存储桶中存储了多个文件夹和许多文件。(单击,展示,每日汇总文件等)。 https://console.cloud.google.com/storage/browser/dcmaccountno

是否可以使用rest api下载文件,当前我具有服务帐户和私钥。 我们对goog云存储没有太多了解,因此任何小小的帮助都是非常可观的。

谢谢您的帮助!

2 个答案:

答案 0 :(得分:2)

使用rest API,您可以按照以下链接中已经介绍的以下方式从Google存储空间下载/上传文件:

参考:https://stackoverflow.com/a/53955058/4345389

您可以通过以下方式使用DownloadData方法来代替WebClient的UploadData方法:

// Create a new WebClient instance.
using (WebClient client= new WebClient())
{
  client.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + bearerToken);
  client.Headers.Add(HttpRequestHeader.ContentType, "application/octet-stream");
// Download the Web resource and save it into a data buffer.
byte[] bytes = client.DownloadData(body.SourceUrl);
MemoryStream memoryStream = new MemoryStream(bytes);
// TODO write further funcitonality to write the memorystream
}

根据您的要求进行一些调整。

答案 1 :(得分:1)

您可以调用两个REST API中的任何一个:JSON或XML。无论如何,您都需要从documentation中详细了解的OAuth 2.0获取授权访问令牌,然后将cURL与GET Object Request一起使用:

JSON API:

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"

XML API:

curl -X GET \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -o "[SAVE_TO_LOCATION]" \
    "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

请注意,对于多个文件,您必须对请求进行编程,因此,如果要轻松下载存储桶或子目录中的所有对象,最好使用gsutil