do-meta-query

do-meta-query通过存储空间(Bucket)的元数据索引功能,查询满足指定条件的文件(Object),并按照字段和排序方式列出文件信息。

注意事项

阿里云账号默认拥有查询满足指定条件的文件Object的权限。如果您需要通过RAM用户或者STS的方式进行添加修改,您必须拥有oss:DoMetaQuery权限。具体操作,请参见RAM用户授权自定义的权限策略

命令格式

ossutil api do-meta-query --bucket value --meta-query value [flags]

参数

类型

说明

--bucket

string

Bucket的名称。

--meta-query

string

查询条件的容器。

说明

do-meta-query命令对应API接口DoMetaQuery。关于API中的具体参数含义,请参见DoMetaQuery

--meta-query

--meta-query配置选项既支持XML语法也支持JSON语法,当选项值包含file://前缀时,表示从文件中读取配置。

  • XML语法:

    <MetaQuery>
      <Sort>string</Sort>
      <Order>string</Order>
      <Aggregations>
        <Aggregation>
          <Field>string</Field>
          <Operation>string</Operation>
        </Aggregation>
        ...
      </Aggregations>
      <NextToken>string</NextToken>
      <MaxResults>integer</MaxResults>
      <Query>string</Query>
    </MetaQuery>
  • JSON语法:

    {
      "Query": "string",
      "Sort": "string",
      "Order": "string",
      "Aggregations": {
        "Aggregation": [
          {
            "Field": "string",
            "Operation": "string"
          },
          ...
        ]
      },
      "NextToken": "string",
      "MaxResults": integer
    }
说明

关于支持的全局命令行选项,请参见支持的全局命令行选项

使用示例

以下示例展示了如何查询存储空间examplebucket中满足指定条件的文件。

  • 使用XML配置文件,meta-query.xml内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <MetaQuery>
        <NextToken></NextToken>
        <MaxResults>5</MaxResults>
        <Query>{"Field": "Size","Value": "1048576","Operation": "gt"}</Query>
        <Sort>Size</Sort>
        <Order>asc</Order>
        <Aggregations>
            <Aggregation>
                <Field>Size</Field>
                <Operation>sum</Operation>
            </Aggregation>
            <Aggregation>
                <Field>Size</Field>
                <Operation>max</Operation>
            </Aggregation>
        </Aggregations>
    </MetaQuery>

命令示例如下:

ossutil api do-meta-query --bucket examplebucket --meta-query file://meta-query.xml
  • 使用JSON配置文件,meta-query.json内容如下:

    {
      "MaxResults": "5",
      "Query": "{\"Field\": \"Size\",\"Value\": \"1048576\",\"Operation\": \"gt\"}",
      "Sort": "Size",
      "Order": "asc",
      "Aggregations": {
        "Aggregation": [
          {
            "Field": "Size",
            "Operation": "sum"
          },
          {
            "Field": "Size",
            "Operation": "max"
          }
        ]
      }
    }

    命令示例如下:

    ossutil api do-meta-query --bucket examplebucket --meta-query file://meta-query.json
  • 使用JSON配置参数,命令示例如下:

    ossutil api do-meta-query --bucket examplebucket --meta-query "{\"MaxResults\":\"5\",\"Query\":\"{\\\"Field\\\": \\\"Size\\\",\\\"Value\\\": \\\"1048576\\\",\\\"Operation\\\": \\\"gt\\\"}\",\"Sort\":\"Size\",\"Order\":\"asc\",\"Aggregations\":{\"Aggregation\":[{\"Field\":\"Size\",\"Operation\":\"sum\"},{\"Field\":\"Size\",\"Operation\":\"max\"}]}}"