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ótuloTVouStereoe sejam maiores que 10 MB de tamanho:
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:
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
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
imm:SimpleQuery |
list |
*Dataset
|
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 |
|
10 |
| ProjectName |
string |
Sim |
|
test-project |
| DatasetName |
string |
Sim |
|
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
|
Size,Filename |
| Order |
string |
Não |
A ordem de classificação. Valores válidos:
|
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:
Valores válidos:
|
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:
|
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.