Google Storage API - 使用" /"检索对象在名字中

时间:2015-04-25 20:44:36

标签: google-cloud-storage

当我尝试使用" /"检索对象时在名称中我获得了响应中的所有文件信息和元数据,但是文件本身的链接只指向"未找到"。这适用于我的代码,并在其网站上使用API​​ Explorer。

例如,一个名为" testfolder / test.txt"的文件。它在Developer Console中正确显示为名为" testfolder /"的伪文件夹。和一个名为" test.txt"的文件,但是当做一个Get on" testfolder / test.txt",或者前缀为&#34的List; testfolder /"我遇到了上面提到的问题。

我可以在gsutil和控制台中检索目标文件。如果我使用" /"以外的符号,我还可以使用API​​检索目标文件。这只是" /"导致API响应中的链接无法正确指向文件。

请求:

GET https://www.googleapis.com/storage/v1/b/dschaffertestbucket/o/testfolder%2Ftest.txt?key={YOUR_API_KEY}

响应:

200 OK  
{

 "kind": "storage#object",
 "id": "dschaffertestbucket/testfolder/test.txt/1429992872601000",
 "selfLink": "https://www.googleapis.com/storage/v1/b/dschaffertestbucket/o/testfolder%2Ftest.txt",
 "name": "testfolder/test.txt",
 "bucket": "dschaffertestbucket",
 "generation": "1429992872601000",
 "metageneration": "1",
 "contentType": "application/octet-stream",
 "updated": "2015-04-25T20:14:32.600Z",
 "storageClass": "STANDARD",
 "size": "14",
 "md5Hash": "vLrQ6JkgmdfYKJKKN1ebFQ==",
 "mediaLink": "https://www.googleapis.com/download/storage/v1/b/dschaffertestbucket/o/testfolder%2Ftest.txt?generation=1429992872601000&alt=media",
 "owner": {
  "entity": "user-00b4903a971fb6d48e9e442442b7892dfc55f81ce026106122cb58989d926f00",
  "entityId": "00b4903a971fb6d48e9e442442b7892dfc55f81ce026106122cb58989d926f00"
 },
 "crc32c": "Qcfj8Q==",
 "etag": "CKjLz8miksUCEAE="
}

1 个答案:

答案 0 :(得分:-2)

在此article中,您可以发现云端存储没有像Windows和Linux这样的文件层次结构,而且“gsutil”和云存储API只是给人一种错觉。

在您的情况下,更容易避免在文件名中包含“/”字符,或者使用其他字符。