Google cloud storage Google存储API-使用“检索对象”/&引用;名义上
当我试图检索名称中带有“/”的对象时,我会在响应中获得所有文件信息和元数据,但指向文件本身的链接只指向“未找到”。这既适用于我的代码,也适用于在他们的网站上使用API资源管理器 例如,一个名为“testfolder/test.txt”的文件。它在开发人员控制台中正确地显示为一个名为“testfolder/”的伪文件夹和一个名为“test.txt”的内部文件,但在“testfolder/test.txt”或前缀为“testfolder/”的列表上运行时,我遇到了上述问题 我可以在gsutil和控制台中很好地检索对象文件。如果使用“/”以外的符号,我还可以使用API很好地检索对象文件。这只是关于“/”的问题,导致API响应中的链接无法正确指向文件 请求:Google cloud storage Google存储API-使用“检索对象”/&引用;名义上,google-cloud-storage,Google Cloud Storage,当我试图检索名称中带有“/”的对象时,我会在响应中获得所有文件信息和元数据,但指向文件本身的链接只指向“未找到”。这既适用于我的代码,也适用于在他们的网站上使用API资源管理器 例如,一个名为“testfolder/test.txt”的文件。它在开发人员控制台中正确地显示为一个名为“testfolder/”的伪文件夹和一个名为“test.txt”的内部文件,但在“testfolder/test.txt”或前缀为“testfolder/”的列表上运行时,我遇到了上述问题 我可以在gsutil和控制
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="
}
在这里,您可以发现云存储没有像Windows和Linux那样的文件层次结构,“gsutil”和云存储API只是给人一种错觉
在您的情况下,只需避免在文件名中包含“/”字符,或者使用不同的字符就更容易了。您能补充一些关于确切问题的详细信息吗?你能用坏链接插入请求负载和响应负载的文本版本吗?检索名称中有正斜杠的对象与检索任何其他对象没有区别(在显示psuedo文件夹的开发人员控制台UI上除外)。如果能够检索不带斜杠的对象,则应该能够检索带斜杠的对象。您是否可以按照Chris的建议发布您的请求/响应有效负载(首先清除身份验证标题)。使用请求/响应更新。