全部產品
Search
文件中心

Object Storage Service:do-meta-query

更新時間:Jun 05, 2025

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

查詢條件的容器。

--meta-query-mode

string

檢索模式。取值如下:

  • basic(預設值):標量檢索

  • semantic:向量檢索

說明

do-meta-query命令對應API介面DoMetaQuery。關於API中的具體參數含義,請參見DoMetaQuery

--meta-query

--meta-query配置選項既支援XML文法也支援JSON文法,當選項值包含file://首碼時,表示從檔案中讀取配置。

  • XML文法:

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

    {
      "Query": "string",
      "Sort": "string",
      "Order": "string",
      "Aggregations": {
        "Aggregation": [
          {
            "Field": "string",
            "Operation": "string"
          },
          ...
        ]
      },
      "MediaTypes": {
        "MediaType": ["string", ...]
      },
      "SimpleQuery": "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 file://meta-query.json
  • 以下樣本展示了如何通過資料索引的向量模式查詢儲存空間examplebucket中滿足指定條件的檔案。

    • 使用XML設定檔,meta-query.xml內容如下:

      <?xml version="1.0" encoding="UTF-8"?>
      <MetaQuery>
          <Query>Overlooking the snow covered forest</Query>
          <MediaTypes>
              <MediaType>image</MediaType>
          </MediaTypes>
          <SimpleQuery>{"Operation":"gt", "Field": "Size", "Value": "1"}</SimpleQuery>
      </MetaQuery>

      命令樣本如下:

      ossutil api do-meta-query --bucket examplebucket --meta-query file://meta-query.xml  --meta-query-mode semantic
    • 使用JSON設定檔,meta-query.json內容如下:

      {
          "Query": "Overlooking the snow covered forest",
          "MediaTypes": {
            "MediaType": "image"
          },
          "SimpleQuery": "{\"Operation\":\"gt\", \"Field\": \"Size\", \"Value\": \"1\"}"
      }

      命令樣本如下:

      ossutil api do-meta-query --bucket examplebucket --meta-query file://meta-query.json --meta-query-mode semantic
    • 使用JSON配置參數,命令樣本如下:

      ossutil api do-meta-query --bucket examplebucket --meta-query "{\"Query\":\"Overlooking the snow covered forest\",\"MediaTypes\":{\"MediaType\":\"image\"},\"SimpleQuery\":\"{\\\"Operation\\\":\\\"gt\\\", \\\"Field\\\": \\\"Size\\\", \\\"Value\\\": \\\"1\\\"}\"}" --meta-query-mode semantic