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 | 檢索模式。取值如下:
|
說明
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