Todos os produtos
Search
Central de documentação

Intelligent Media Management:SimpleQuery

Última atualização: Jun 29, 2026

Consulta arquivos em um conjunto de dados realizando uma operação de consulta simples. A operação suporta expressões lógicas.

Descrição da operação

  • Antes de chamar esta operação, certifique-se de estar familiarizado com a cobrança do Intelligent Media Management (IMM).****

  • Antes de chamar esta operação, certifique-se de ter indexado os metadados do arquivo no conjunto de dados automaticamente chamando a operação CreateBinding ou manualmente chamando a operação IndexFileMeta ou BatchIndexFileMeta.

  • A resposta de exemplo é fornecida apenas para referência. O tipo e o conteúdo dos metadados na sua resposta podem diferir com base em fatores como as configurações do modelo de fluxo de trabalho. Para quaisquer dúvidas, participe do grupo de chat do DingTalk (ID: 31690030817) e compartilhe suas perguntas conosco.

Limites

  • Cada consulta retorna informações sobre até 100 arquivos.

  • Cada consulta retorna até 2.000 agregações.

  • Uma subconsulta suporta até 100 condições.

  • Uma subconsulta pode ter uma profundidade máxima de aninhamento de 5 níveis.

Exemplos de condições de consulta

  • Recuperar imagens JPEG maiores que 1.000 pixels:

{
  "SubQueries":[
    {
      "Field":"ContentType",
      "Value": "image/jpeg",
      "Operation":"eq"
    },         
    {
      "Field":"ImageWidth",
      "Value":"1000",
      "Operation":"gt"
    }
  ],
  "Operation":"and"
}
  • Pesquisar em oss://examplebucket/path/ por objetos que tenham o rótulo TV ou Stereo e sejam maiores que 10 MB de tamanho:

Nota

Esta consulta requer que os arquivos correspondentes tenham o rótulo TV ou Stereo. Os dois rótulos são especificados como objetos separados nos campos Labels.

{
  "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": "Stereo",
          "Operation": "eq"
        }
      ],
      "Operation": "or"
    }
  ],
  "Operation": "and"
}
        
  • Excluir imagens que contenham o rosto de um homem com mais de 36 anos:

Nota

Nesta consulta de exemplo, uma imagem será excluída dos resultados da consulta se contiver o rosto de um homem com mais de 36 anos. Esta consulta é diferente de excluir uma imagem que contenha um rosto masculino ou o rosto de uma pessoa com mais de 36 anos. Nesta consulta, você precisa usar o operador nested para especificar que as condições são atendidas no 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"
			}]
		}]
	}]
}
  • Consultar imagens JPEG que tenham tanto rótulos personalizados quanto rótulos do sistema:

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

Você também pode realizar operações de agregação para coletar e analisar diferentes dados com base nas condições especificadas. Por exemplo, você pode calcular a soma, a contagem, o valor médio ou o valor máximo de todos os arquivos que atendem às condições da consulta. Você também pode calcular a distribuição de tamanho das imagens que atendem às condições da consulta.

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

*Dataset

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 de paginação é usado na próxima solicitação para recuperar uma nova página de resultados se o número total de resultados exceder o valor do parâmetro MaxResults.

A próxima chamada à operação retorna resultados lexicograficamente após o valor do parâmetro NextToken.

Você não precisa especificar este parâmetro na sua solicitação inicial.

MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==

MaxResults

integer

Não

  • Se o parâmetro Aggregations não for especificado, este parâmetro especifica o número máximo de arquivos que podem ser retornados. Valores válidos: 1 a 100.

  • Se o parâmetro Aggregations for especificado, este parâmetro especifica o número máximo de grupos de agregação que podem ser retornados. Valores válidos: 0 a 2000.

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

10

ProjectName

string

Sim

O nome do projeto.

test-project

DatasetName

string

Sim

O nome do conjunto de dados.

test-dataset

Query SimpleQuery

Não

As condições da consulta.

Sort

string

Não

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

Nota
  • Se você especificar vários campos de ordenação, separe-os com vírgulas (,), como em Size,Filename.

  • Você pode especificar até cinco campos de ordenação.

  • A ordem dos campos de ordenação determina sua precedência no processo de classificação.

Size,Filename

Order

string

Não

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

  • asc: classifica os resultados em ordem crescente.

  • desc: classifica os resultados em ordem decrescente. Este é o valor padrão.

  • Você pode especificar várias ordens de classificação separadas por vírgulas. Exemplo: asc,desc.

  • 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 o valor do parâmetro Sort for Size,Filename, você pode definir o parâmetro Order como desc,asc.

  • Se o número de ordens de classificação for menor que o número de campos de ordenação, os campos de ordenação para os quais nenhuma ordem de classificação foi explicitamente especificada usarão a ordem asc por padrão. Por exemplo, se você definir Sort como Size,Filename e Order como asc, o campo Filename assumirá o valor asc por padrão.

asc,desc

Aggregations

array<object>

Não

As agregações.

Nota

Se você realizar uma consulta agregada, a agregação retornada na resposta conterá apenas resultados estatísticos, e não os metadados reais.

object

Não

A estrutura da agregação.

Field

string

Não

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

Size

Operation

string

Não

O operador.

Valores enumerados:

  • average: calcula o número médio.

  • min: encontra o valor mínimo.

  • max: encontra o valor máximo.

  • count: conta o número de resultados.

  • distinct: conta o número de resultados distintos.

  • sum: calcula a soma de todos os resultados correspondentes.

  • group: conta o número de resultados por grupo. Os resultados são classificados pelo número de contagem em ordem decrescente.

Valores válidos:

  • average :
  • min :
  • max :
  • count :
  • distinct :
  • sum :
  • group :

sum

WithFields

array

Não

Os campos que você deseja incluir na resposta. Você pode usar este parâmetro para reduzir o tamanho da resposta.

Se você não especificar este parâmetro ou deixá-lo vazio, a operação retornará todos os campos de metadados.

string

Não

O nome do campo. Os campos na estrutura File são suportados.

Filename

WithoutTotalHits

boolean

Não

Especifica se deve retornar o número total de correspondências. Valores válidos:

  • true

  • false

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

A estrutura de dados retornada.

NextToken

string

O token de paginação é usado na próxima solicitação para recuperar uma nova página de resultados se o número total de resultados exceder o valor do parâmetro MaxResults.

Ele pode ser usado na próxima solicitação para recuperar uma nova página de resultados.

Se NextToken estiver vazio, não existirá uma próxima página.

MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==

RequestId

string

O ID da solicitação.

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

Files

array

Os arquivos. Este parâmetro é retornado apenas quando o valor do parâmetro de solicitação Aggregations estiver vazio.

File

A estrutura de dados para as informações do arquivo.

Aggregations

array<object>

As agregações. Este parâmetro é retornado apenas quando o valor do parâmetro de solicitação Aggregations não estiver vazio.

array<object>

A estrutura da agregação.

Field

string

O nome do campo.

Size

Operation

string

O operador.

sum

Value

number

O resultado estatístico.

200

Groups

array<object>

As agregações agrupadas. Este parâmetro é retornado apenas quando o operador group é especificado no parâmetro de solicitação Aggregations.

object

A agregação agrupada.

Value

string

The value for the grouped aggregation.

100

Count

integer

The number of results in the grouped aggregation.

5

TotalHits

integer

O número total de correspondências.

10

Exemplos

Resposta de sucesso

JSON formato

{
  "NextToken": "MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpwZw==",
  "RequestId": "2C5C1E0F-D8B8-4DA0-8127-EC32C771****",
  "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": [
                0
              ]
            }
          ]
        }
      ],
      "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": [
                    0
                  ]
                }
              ]
            }
          ]
        }
      ],
      "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": "图片中有一人,穿着深色西装外套,内搭白色衬衫。背景为渐变的浅蓝色至灰色。"
        }
      }
    }
  ],
  "Aggregations": [
    {
      "Field": "Size",
      "Operation": "sum",
      "Value": 200,
      "Groups": [
        {
          "Value": "100",
          "Count": 5
        }
      ]
    }
  ],
  "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.