Todos os produtos
Search
Central de documentação

Intelligent Media Management:SimpleQuery

Última atualização: Oct 09, 2026

Consulta e agrega arquivos em um conjunto de dados e oferece suporte a expressões lógicas.

Descrição da operação

  • Antes de chamar esta operação, certifique-se de compreender totalmente os métodos de cobrança e os preços do Intelligent Media Management.

  • Antes de chamar esta operação, certifique-se de ter indexado arquivos em um conjunto de dados usando vinculações (CreateBinding) ou indexação ativa (IndexFileMeta ou BatchIndexFileMeta).

  • Os resultados retornados são apenas exemplos. Dependendo da configuração do modelo de fluxo de trabalho, as categorias e o conteúdo dos metadados de arquivo obtidos podem diferir dos exemplos. Se tiver alguma dúvida, participe do grupo do DingTalk para enviar feedback. Para obter o ID do grupo do DingTalk, consulte Fale conosco.

Limites

  • Cada consulta retorna no máximo 100 arquivos.

  • Cada consulta retorna no máximo 2.000 informações de estatísticas de agregação.

  • Há suporte para no máximo 100 condições de subconsulta.

  • Há suporte para uma profundidade máxima de aninhamento de 5 níveis para subconsultas.

Exemplos de condições de consulta

  • Para pesquisar imagens JPEG com tamanho superior a 1.000 pixels, especifique o parâmetro Query da seguinte forma:

{
  "SubQueries":[
    {
      "Field":"ContentType",
      "Value": "image/jpeg",
      "Operation":"eq"
    },         
    {
      "Field":"ImageWidth",
      "Value":"1000",
      "Operation":"gt"
    }
  ],
  "Operation":"and"
}
  • Para pesquisar todos os arquivos em oss://examplebucket/path/ que contenham a tag TV ou Speaker e sejam maiores que 10 MB, especifique o parâmetro Query da seguinte forma:

Nota

Aqui, TV e Speaker são tags diferentes do mesmo arquivo e existem como dois objetos independentes no campo Labels. Observe a diferença entre este e o próximo exemplo.

{
  "SubQueries": [
    {
      "Field": "URI",
      "Value": "oss://examplebucket/path/",
      "Operation": "prefix"
    },
    {
      "Field": "Size",
      "Value": "1048576",
      "Operation": "gt"
    },
    {
      "SubQueries": [
        {
          "Field": "Labels.LabelName",
          "Value": "TV",
          "Operation": "eq"
        },
        {
          "Field": "Labels.LabelName",
          "Value": "Speaker",
          "Operation": "eq"
        }
      ],
      "Operation": "or"
    }
  ],
  "Operation": "and"
}
        
  • Para excluir arquivos que contenham informações de rosto de um homem com mais de 36 anos, especifique o parâmetro Query da seguinte forma:

Nota

Ao contrário do exemplo anterior, isso exige que um único rosto atenda a ambas as condições: ter mais de 36 anos e ser do sexo masculino. Isso é diferente de um requisito em que uma imagem contém vários rostos, sendo um do sexo masculino e outro com mais de 36 anos. Nesta solicitação, você deve usar uma consulta nested para garantir que as condições sejam atendidas dentro do mesmo elemento.

{
	"Operation": "not",
	"SubQueries": [{
		"Operation": "nested",
		"SubQueries": [{
			"Operation": "and",
			"SubQueries": [{
				"Field": "Figures.Age",
				"Operation": "gt",
				"Value": "36"
			}, {
				"Field": "Figures.Gender",
				"Operation": "eq",
				"Value": "male"
			}]
		}]
	}]
}
  • Para pesquisar imagens JPEG que possuem tags personalizadas e tags de sistema, especifique o parâmetro Query da seguinte forma:

{
  "SubQueries":[
    {
      "Field":"ContentType",
      "Value": "image/jpeg",
      "Operation":"eq"
    },         
    {
      "Field":"CustomLabels.test",
      "Operation":"exist"
    },         
    {
      "Field":"Labels.LabelName",
      "Operation":"exist"
    }
  ],
  "Operation":"and"
}

Com base nas condições de pesquisa anteriores, você também pode usar operações de agregação para coletar estatísticas e analisar diferentes dados. Por exemplo, você pode calcular o tamanho total, a contagem, a média ou os valores extremos de todos os arquivos que atendem às condições de pesquisa, ou coletar estatísticas sobre a distribuição de tamanho de todas as imagens que atendem às condições de pesquisa.

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

A tabela abaixo descreve a autorização necessária para chamar esta API. Você pode defini-la em uma política do Resource Access Management (RAM). As colunas da tabela estão detalhadas abaixo:

  • Ação: As ações que podem ser usadas no elemento Action das instruções de política de permissão do RAM para conceder permissões para executar a operação.

  • API: A API que você pode chamar para executar a ação.

  • Nível de acesso: O nível de acesso predefinido concedido para cada API. Valores válidos: create, list, get, update e delete.

  • Tipo de recurso: O tipo de recurso que suporta autorização para executar a ação. Indica se a ação suporta permissão em nível de recurso. O recurso especificado deve ser compatível com a ação. Caso contrário, a política será ineficaz.

    • Para APIs com permissões em nível de recurso, os tipos de recursos obrigatórios são marcados com um asterisco (*). Especifique o Nome de Recurso Alibaba Cloud (ARN) correspondente no elemento Resource da política.

    • Para APIs sem permissões em nível de recurso, é exibido como Todos os Recursos. Use um asterisco (*) no elemento Resource da política.

  • Chave de condição: As chaves de condição definidas pelo serviço. A chave permite controle granular, aplicando-se somente a ações ou a ações associadas a recursos específicos. Além das chaves de condição específicas do serviço, o Alibaba Cloud fornece um conjunto de chaves de condição comuns aplicáveis a todos os serviços compatíveis com RAM.

  • Ação dependente: As ações dependentes necessárias para executar a ação. Para concluir a ação, o usuário RAM ou a função RAM deve ter permissões para executar todas as ações dependentes.

Ação

Nível de acesso

Tipo de recurso

Chave de condição

Ação dependente

imm:SimpleQuery

list

*Conjunto de dados.

acs:imm:{#regionId}:{#accountId}:project/{#ProjectName}/dataset/{#DatasetName}

Nenhuma Nenhuma

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

NextToken

string

Não

O token usado para paginação quando o número total de arquivos excede o valor de MaxResults.

A lista de arquivos é retornada em ordem lexicográfica a partir de NextToken.

Defina este parâmetro como vazio ao chamar esta operação pela primeira vez.

MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==

MaxResults

integer

Não

  • Ao realizar uma consulta de arquivos sem especificar o parâmetro Aggregations, este parâmetro especifica o número máximo de arquivos a serem retornados. Valores válidos: 0 a 100.

  • Ao especificar o parâmetro Aggregations para estatísticas de agregação, este parâmetro especifica o número máximo de grupos a serem retornados. Valores válidos: 0 a 2000.

  • Se você não especificar este parâmetro ou defini-lo como 0, o valor padrão será 100.

10

ProjectName

string

Sim

O nome do projeto. Para obter mais informações sobre como obter o nome do projeto, consulte Criar um projeto.

test-project

DatasetName

string

Sim

O nome do conjunto de dados. Para obter mais informações sobre como obter o nome do conjunto de dados, consulte Criar um conjunto de dados.

test-dataset

Query SimpleQuery

Não

As condições de consulta simples. Clique no link à esquerda para ver os detalhes.

Sort

string

Não

A lista de campos de ordenação. Para obter mais informações, consulte Campos e operadores suportados.

Nota
  • Você pode separar vários campos de ordenação com vírgulas (,), por exemplo, Size,Filename.

  • Você pode especificar no máximo 5 campos de ordenação.

  • A ordem dos campos de ordenação determina a prioridade de classificação.

Size,Filename

Order

string

Não

A ordem de classificação dos campos de ordenação. Valores válidos:

  • asc: ordem crescente

  • desc: ordem decrescente (padrão)

Nota
  • Você pode separar várias ordens de classificação com vírgulas (,), por exemplo, asc,desc.

  • O número de ordens de classificação não pode exceder o número de campos de ordenação. Ou seja, o número de elementos no parâmetro Order deve ser menor ou igual ao número de elementos no parâmetro Sort. Por exemplo, se Sort estiver definido como Size,Filename, Order pode ser definido como "asc,desc".

  • Se o número de ordens de classificação for menor que o número de campos de ordenação, a ordem de classificação padrão para os campos não especificados será desc. Por exemplo, se Sort estiver definido como Size,Filename e Order estiver definido como asc, a ordem de classificação padrão para Filename será desc, o que significa ordem decrescente.

asc,desc

Aggregations

array<object>

Não

A lista de informações de campos de agregação.

Importante Ao usar uma consulta de agregação, apenas os resultados da agregação são retornados, e a lista de metadados correspondentes não é retornada.

object

Não

A estrutura das informações do campo de agregação.

Field

string

Não

O nome do campo. Para obter mais informações sobre os campos suportados, consulte Campos e operadores suportados.

Size

Operation

string

Não

O operador para o campo de agregação.

Valores válidos:

  • average :

    Média.

  • min :

    Valor mínimo.

  • max :

    Valor máximo.

  • count :

    Contagem.

  • distinct :

    Contagem distinta.

  • sum :

    Soma.

  • group :

    Contagem de grupos, classificada em ordem decrescente dos resultados da contagem de grupos.

sum

WithFields

array

Não

Especifica os campos específicos a serem retornados em vez de todos os campos de metadados existentes. Isso pode ser usado para reduzir o tamanho da estrutura retornada.

Se você não especificar este parâmetro ou deixá-lo vazio, todos os campos serão retornados.

string

Não

O nome do campo a ser retornado. Para obter mais informações sobre os nomes de campos suportados, consulte File.

Filename

WithoutTotalHits

boolean

Não

Especifica se o número total de registros correspondentes deve ser retornado. Valores válidos:

  • true: O campo TotalHits não é retornado.

  • false: O campo TotalHits é retornado.

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

A estrutura da resposta.

Aggregations

array<object>

A lista de informações de campos de agregação. Este parâmetro é retornado apenas quando Aggregations na solicitação não está vazio.

array<object>

A estrutura das informações do campo de agregação.

Field

string

O nome do campo de agregação.

Size

Groups

array<object>

A lista de resultados de agrupamento e agregação. Este parâmetro é retornado apenas quando existe uma Operation do tipo group em Aggregations da solicitação.

object

O resultado do agrupamento e da agregação.

Count

integer

A contagem total do agrupamento e da agregação.

5

Value

string

O valor do agrupamento e da agregação.

100

Operation

string

A operação de agregação para o campo de agregação.

sum

Value

number

O resultado estatístico da agregação.

200

Files

array

A lista de informações de arquivos. Este parâmetro é retornado apenas quando Aggregations na solicitação está vazio.

File

A estrutura das informações do arquivo.

NextToken

string

O token usado para paginação quando o número total de arquivos excede o valor de MaxResults.

Ao listar as informações do arquivo na próxima vez, defina NextToken com este valor para retornar os resultados restantes.

Este parâmetro tem um valor apenas quando nem todos os arquivos são retornados.

MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==

RequestId

string

O ID da solicitação.

2C5C1E0F-D8B8-4DA0-8127-EC32C771****

TotalHits

integer

O número de registros correspondentes.

10

Exemplos

Resposta de sucesso

JSON formato

{
  "Aggregations": [
    {
      "Field": "Size",
      "Groups": [
        {
          "Count": 5,
          "Value": "100"
        }
      ],
      "Operation": "sum",
      "Value": 200
    }
  ],
  "Files": [
    {
      "OwnerId": "102321002467****",
      "ProjectName": "test-project",
      "DatasetName": "test-dataset",
      "ObjectType": "file",
      "ObjectId": "75d5de2c50754e3dadd5c35dbca5f9949369e37eb342a73821f690c94c36c7f7",
      "UpdateTime": "2021-06-29T14:50:13.011643661+08:00",
      "CreateTime": "2021-06-29T14:50:13.011643661+08:00",
      "URI": "oss://test-bucket/test-object.jpg",
      "OSSURI": "oss://examplebucket/sampleobject.jpg",
      "Filename": "sampleobject.jpg",
      "MediaType": "image",
      "ContentType": "image/jpeg",
      "Size": 1000,
      "FileHash": "1d9c280a7c4f67f7ef873e28449dbe17",
      "FileModifiedTime": "2021-06-29T14:50:13.011643661+08:00",
      "FileCreateTime": "2021-06-29T14:50:13.011643661+08:00",
      "FileAccessTime": "2021-06-29T14:50:13.011643661+08:00",
      "ProduceTime": "2021-06-29T14:50:13.011643661+08:00",
      "LatLong": "30.134390,120.074997",
      "Timezone": "\"\"",
      "Addresses": [
        {
          "Language": "zh-Hans",
          "AddressLine": "中国浙江省杭州市余杭区文一西路969号",
          "Country": "中国",
          "Province": "浙江省",
          "City": "杭州市",
          "District": "余杭区",
          "Township": "文一西路"
        }
      ],
      "TravelClusterId": "-",
      "Orientation": 0,
      "Figures": [
        {
          "FigureId": "868a9e74-cde5-4c7a-9013-28bb984****",
          "FigureConfidence": 1,
          "FigureClusterId": "Cluster-dbe72fec-b84c-4ab6-885b-3678e64****",
          "FigureClusterConfidence": 1,
          "FigureType": "face",
          "Age": 29,
          "AgeSD": 5,
          "Gender": "female",
          "GenderConfidence": 1,
          "Emotion": "happiness",
          "EmotionConfidence": 0.70784568786621,
          "FaceQuality": 0.960875928401947,
          "Boundary": {
            "Width": 200,
            "Height": 300,
            "Left": 10,
            "Top": 30,
            "Polygon": [
              {
                "X": 10,
                "Y": 10
              }
            ]
          },
          "Mouth": "close",
          "MouthConfidence": 1,
          "Beard": "none",
          "BeardConfidence": 1,
          "Hat": "none",
          "HatConfidence": 1,
          "Mask": "none",
          "MaskConfidence": 1,
          "Glasses": "none",
          "GlassesConfidence": 0.8,
          "Sharpness": 0.7,
          "Attractive": 0.96,
          "HeadPose": {
            "Pitch": 18.385589599609375,
            "Roll": 4.204030513763428,
            "Yaw": 2.4945924282073975
          }
        }
      ],
      "FigureCount": 10,
      "Labels": [
        {
          "Language": "zh-Hans",
          "LabelName": "椅子",
          "LabelLevel": 2,
          "LabelConfidence": 0.95,
          "ParentLabelName": "家具",
          "CentricScore": 0.877,
          "LabelAlias": "座椅",
          "Clips": [
            {
              "TimeRange": [
                100
              ]
            }
          ]
        }
      ],
      "Title": "test",
      "ImageWidth": 270,
      "ImageHeight": 500,
      "EXIF": "{\"Compression\":{\"value\":\"6\"},\"DateTime\":{\"value\":\"2020:08:19 17:11:11\"}}",
      "ImageScore": {
        "OverallQualityScore": 0.736
      },
      "CroppingSuggestions": [
        {
          "AspectRatio": "2:3",
          "Confidence": 0.742,
          "Boundary": {
            "Width": 200,
            "Height": 300,
            "Left": 10,
            "Top": 30,
            "Polygon": [
              {
                "X": 10,
                "Y": 10
              }
            ]
          }
        }
      ],
      "OCRContents": [
        {
          "Language": "zh-hans",
          "Contents": "欢迎使用智能媒体管理",
          "Confidence": 0.8254936695098877,
          "Boundary": {
            "Width": 200,
            "Height": 300,
            "Left": 10,
            "Top": 30,
            "Polygon": [
              {
                "X": 10,
                "Y": 10
              }
            ]
          }
        }
      ],
      "VideoWidth": 1080,
      "VideoHeight": 1920,
      "VideoStreams": [
        {
          "Index": 0,
          "Language": "en",
          "CodecName": "h264",
          "CodecLongName": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
          "Profile": "High",
          "CodecTimeBase": "1373627/83160000",
          "CodecTagString": "avc1",
          "CodecTag": "0x31637661",
          "Width": 1280,
          "Height": 720,
          "HasBFrames": 2,
          "SampleAspectRatio": "1:1",
          "DisplayAspectRatio": "16:9",
          "PixelFormat": "yuv420p",
          "Level": 40,
          "FrameRate": "25/1",
          "AverageFrameRate": "25/1",
          "TimeBase": "1/12800",
          "StartTime": 0,
          "Duration": 22.88,
          "Bitrate": 5407765,
          "FrameCount": 572,
          "Rotate": "90",
          "BitDepth": 8,
          "ColorSpace": "bt709",
          "ColorRange": "tv",
          "ColorTransfer": "bt709",
          "ColorPrimaries": "bt709"
        }
      ],
      "Subtitles": [
        {
          "Index": 2,
          "Language": "en",
          "CodecName": "mov_text",
          "CodecLongName": "MOV text",
          "CodecTagString": "tx3g",
          "CodecTag": "0x67337874",
          "StartTime": 0,
          "Duration": 71.378,
          "Bitrate": 74,
          "Content": "欢迎",
          "Width": 600,
          "Height": 30
        }
      ],
      "AudioStreams": [
        {
          "Index": 1,
          "Language": "en",
          "CodecName": "aac",
          "CodecLongName": "AAC (Advanced Audio Coding)",
          "CodecTimeBase": "1/44100",
          "CodecTagString": "mp4a",
          "CodecTag": "0x6134706d",
          "TimeBase": "1/48000",
          "StartTime": 0.0235,
          "Duration": 3.690667,
          "Bitrate": 320087,
          "FrameCount": 173,
          "Lyric": "test",
          "SampleFormat": "fltp",
          "SampleRate": 48000,
          "Channels": 2,
          "ChannelLayout": "stereo"
        }
      ],
      "Artist": "Jane",
      "AlbumArtist": "Jane",
      "AudioCovers": [
        {
          "ImageWidth": 500,
          "ImageHeight": 820,
          "EXIF": "{\"FileSize\":{\"value\":\"29304\"},\"Format\":{\"value\":\"jpg\"}}",
          "ImageScore": {
            "OverallQualityScore": 0.736
          },
          "CroppingSuggestions": [
            {
              "AspectRatio": "2:3",
              "Confidence": 0.742
            }
          ],
          "OCRContents": [
            {
              "Language": "zh-hans",
              "Contents": "欢迎使用智能媒体管理",
              "Confidence": 0.8254936695098877
            }
          ]
        }
      ],
      "Composer": "Jane",
      "Performer": "Jane",
      "Language": "eng",
      "Album": "FirstAlbum",
      "PageCount": 5,
      "ETag": "\"1D9C280A7C4F67F7EF873E28449****\"",
      "CacheControl": "no-cache",
      "ContentDisposition": "attachment; filename =test.jpg",
      "ContentEncoding": "UTF-8",
      "ContentLanguage": "zh-CN",
      "AccessControlAllowOrigin": "https://aliyundoc.com",
      "AccessControlRequestMethod": "PUT",
      "ServerSideEncryptionCustomerAlgorithm": "SM4",
      "ServerSideEncryption": "AES256",
      "ServerSideDataEncryption": "SM4",
      "ServerSideEncryptionKeyId": "9468da86-3509-4f8d-a61e-6eab1eac****",
      "OSSStorageClass": "Standard",
      "OSSCRC64": "559890638950338001",
      "ObjectACL": "default",
      "ContentMd5": "HZwoCnxPZ/fvhz4oRJ2+Fw==",
      "OSSUserMeta": {
        "key": "val"
      },
      "OSSTaggingCount": 2,
      "OSSTagging": {
        "key": "val"
      },
      "OSSExpiration": "2120-01-01T12:00:00.000Z",
      "OSSVersionId": "CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0****",
      "OSSDeleteMarker": "CAEQMhiBgIDXiaaB0BYiIGQzYmRkZGUxMTM1ZDRjOTZhNjk4YjRjMTAyZjhl****",
      "OSSObjectType": "Normal",
      "CustomId": "\t\nmember-image-id-0001",
      "CustomLabels": {
        "MemberName": "Tim",
        "Enabled": "True",
        "ItemCount": "10"
      },
      "StreamCount": 1,
      "ProgramCount": 1,
      "FormatName": "mov",
      "FormatLongName": "QuickTime / MOV",
      "StartTime": 0,
      "Bitrate": 13091201,
      "Duration": 15.263,
      "SemanticTypes": [
        "content"
      ],
      "Elements": [
        {
          "ElementContents": [
            {
              "Type": "text",
              "Content": "文本片段",
              "URL": "http://aliyun.com",
              "TimeRange": [
                500
              ]
            }
          ],
          "ObjectId": "id1",
          "ElementType": "title - 标题; image - 图片 ; table - 表格 ; narrative-text - 正文",
          "SemanticSimilarity": 0.8,
          "ElementRelations": [
            {
              "Type": "child,parent",
              "ObjectId": "id1"
            }
          ]
        }
      ],
      "SceneElements": [
        {
          "TimeRange": [
            100
          ],
          "FrameTimes": [
            30
          ],
          "VideoStreamIndex": 0,
          "Labels": [
            {
              "Language": "zh-Hans",
              "LabelName": "椅子",
              "LabelLevel": 2,
              "LabelConfidence": 0.95,
              "ParentLabelName": "家具",
              "CentricScore": 0.877,
              "LabelAlias": "座椅",
              "Clips": [
                {
                  "TimeRange": [
                    100
                  ]
                }
              ]
            }
          ]
        }
      ],
      "OCRTexts": "阿里云IMM",
      "Reason": "[InternalError] The request has been failed due to some unknown error. status: 500, requestId: CC5ACFBD-BB7A-496D-A9D6-****",
      "ObjectStatus": "Indexed",
      "Insights": {
        "Video": {
          "Description": "无。",
          "Caption": "视频中展示了两个不同场景:一个是静止的白色盘子、黑色瓶子和透明玻璃杯,另一个是手拿着标有“YEZOLU”的洗发水瓶在浴室中缓慢上移。"
        },
        "Image": {
          "Caption": "无。",
          "Description": "图片中有一人,穿着深色西装外套,内搭白色衬衫。背景为渐变的浅蓝色至灰色。"
        }
      }
    }
  ],
  "NextToken": "MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==",
  "RequestId": "2C5C1E0F-D8B8-4DA0-8127-EC32C771****",
  "TotalHits": 10
}

Códigos de erro

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.