如何通过元数据信息下载Google云端存储对象

时间:2013-10-28 08:37:48

标签: google-cloud-storage

这里的文件:  https://developers.google.com/storage/docs/reference-methods#getobject

我使用此功能尝试下载一个obejct。但只能响应元数据信息

  

getFile:(file_id,callback) - >

log("getFileMetadata") 
unless callback 
  callback = (resp) ->
    log  "Read Complete" ,resp

params =  
  path : "/storage/v1beta2/b/#{@BUCKET}/o/#{file_id}"
  method : "GET"
  headers:
    host: "storage.googleapis.com" 
    "If-Modified-Since" : "Fri, 19 Feb 2001 22:04:23 GMT"
alert("12 storage.googleapis.com")
     

gapi.client.request(paramas,回调)

2 个答案:

答案 0 :(得分:1)

selfLink字段指向包含对象元数据的规范URL。要获取对象的内容,您应该使用mediaLink字段。

答案 1 :(得分:0)

尝试使用Google_Storage_Service下载文件时也遇到了问题。

一旦我在给定的存储桶中列出我的对象,我会得到一个项目数组,每个项目都有一个媒体链接,其中包含我的文件的URL,看起来像

https://www.googleapis.com/storage/v1beta2/b/<bucket>/o/<object>?generation=1234567890&alt=media

很自然地,我尝试使用Google_Http_Request下载此文件(也许有更好的方法?)

$request = new \Google_Http_Request($item->getMediaLink(), 'GET');
$httpRequest = $this->googleClient->getAuth()->authenticatedRequest($request);

但是我收到了一条错误信息......

*The document has moved <A HREF="https://storage.googleapis.com/<bucket>/<object>?generation=1234567890">here</A>*

因此,从以下作品下载,请注意子域中的更改

https://storage.googleapis.com/<bucket>/<object>?generation=1234567890