从Google云端存储获取StorageObjects列表时,使用字段请求参数的正确方法是什么?

时间:2013-08-27 14:48:00

标签: json google-cloud-storage

我想使用JSON API客户端库在存储中进行查找,并且只检索与特定前缀匹配的每个对象的名称和生成,但是我遇到了字段请求参数的问题。

执行以下操作将返回预期的对象。

Storage.Objects.List listObjects = null;
listObjects.setVersions(true);
listObjects.setPrefix(myprefix);

在com.google.api.client.http.HttpRequest中为请求创建的网址为https://www.googleapis.com/storage/v1beta2/b/mybucketname/o?prefix=myprefix&versions=true

然而,当我添加

listObjects.setFields("name,generation");

创建的网址为https://www.googleapis.com/storage/v1beta2/b/mybucketname/o?fields=name,generation&prefix=myprefix&versions=true,将返回以下内容:

{
    "code" : 400,
    "errors" : [ {
        "domain" : "global",
        "location" : "fields",
        "locationType" : "parameter",
        "message" : "Invalid field selection name",
        "reason" : "invalidParameter"
     } ],
     "message" : "Invalid field selection name"
}

我应该如何指定要返回的字段?我指定的字段的层次结构不正确吗?

谢谢!

价: 根据以下内容验证了网址的构成:https://developers.google.com/storage/docs/json_api/v1/how-tos/performance#partial

1 个答案:

答案 0 :(得分:1)

我认为你想要的是:

fields=items(generation,name)

或使用完整网址:

https://www.googleapis.com/storage/v1beta2/b/mybucketname/o?fields=items(generation,name)&prefix=myprefix&versions=true

APIs Explorer是尝试使用此类请求字段的绝佳工具。它会为你生成适当的字段。