Filtrado, ordenación y paginación de entidades
Advertencia
Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS.
En este tema se describen las opciones de consulta de OData y la compatibilidad con la paginación disponible al enumerar entidades de Azure Media Services v3.
Consideraciones
- Las propiedades de entidades que son de tipo
Datetime
siempre están en formato UTC. - El espacio en blanco de la cadena de consulta debe codificarse como URL antes de enviar una solicitud.
Operadores de comparación
Puede usar los operadores siguientes para comparar un campo con un valor constante:
Operadores de igualdad:
-
eq
: se comprueba si un campo es igual a un valor constante. -
ne
: se comprueba si un campo no es igual a un valor constante.
Operadores de rango:
-
gt
: se comprueba si un campo es mayor que un valor constante. -
lt
: se comprueba si un campo es menor que un valor constante. -
ge
: se comprueba si un campo es mayor o igual que un valor constante. -
le
: se comprueba si un campo es menor o igual que un valor constante.
Filter
Use $filter
para suministrar un parámetro de filtro de OData que busque únicamente los objetos que le interesen.
En el siguiente ejemplo de REST se filtra por el valor alternateId
de un recurso:
GET https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$filter=properties/alternateId%20eq%20'unique identifier'
En el siguiente ejemplo en C# se filtra por la fecha de creación del recurso:
var odataQuery = new ODataQuery<Asset>("properties/created lt 2018-05-11T17:39:08.387Z");
var firstPage = await MediaServicesArmClient.Assets.ListAsync(CustomerResourceGroup, CustomerAccountName, odataQuery);
Ordenar por
Use $orderby
para ordenar los objetos devueltos por el parámetro especificado. Por ejemplo:
GET https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01$orderby=properties/created%20gt%202018-05-11T17:39:08.387Z
Para ordenar los resultados de forma ascendente o descendente, anexe asc
o desc
al nombre del campo, separados por un espacio. Por ejemplo: $orderby properties/created desc
.
Token de omisión
Si la respuesta a una consulta contiene muchos elementos, el servicio devuelve un valor de $skiptoken
(@odata.nextLink
) que se usa para obtener la siguiente página de resultados. Utilícelo para desplazarse por el conjunto de resultados completo.
En Media Services v3, no se puede configurar el tamaño de página. El tamaño de página varía según el tipo de entidad. Lea las secciones individuales siguientes para obtener más información.
Si se crean o eliminan entidades al desplazarse por la colección, los cambios se reflejan en los resultados devueltos (si esos cambios se encuentran en la parte de la colección que no se ha descargado).
Sugerencia
Se debe usar siempre nextLink
para enumerar la colección y no tener que depender de un tamaño de página determinado.
El valor nextLink
solo estará presente si hay más de una página de entidades.
Analice el siguiente ejemplo de dónde se usa $skiptoken
. Asegúrese de reemplazar amstestaccount con el nombre de cuenta y establezca el valor de api-version a la versión más reciente.
Si solicita una lista de recursos similar a la siguiente:
GET https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01 HTTP/1.1
x-ms-client-request-id: dd57fe5d-f3be-4724-8553-4ceb1dbe5aab
Content-Type: application/json; charset=utf-8
Obtendrá una respuesta similar a la siguiente:
HTTP/1.1 200 OK
{
"value":[
{
"name":"Asset 0","id":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mediaresources/providers/Microsoft.Media/mediaservices/amstestaccount/assets/Asset 0","type":"Microsoft.Media/mediaservices/assets","properties":{
"assetId":"00000000-0000-0000-0000-000000000000","created":"2018-12-11T22:12:44.98Z","lastModified":"2018-12-11T22:15:48.003Z","container":"asset-00000000-0000-0000-0000-0000000000000","storageAccountName":"amsacctname","storageEncryptionFormat":"None"
}
},
// lots more assets
{
"name":"Asset 517","id":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mediaresources/providers/Microsoft.Media/mediaservices/amstestaccount/assets/Asset 517","type":"Microsoft.Media/mediaservices/assets","properties":{
"assetId":"00000000-0000-0000-0000-000000000000","created":"2018-12-11T22:14:08.473Z","lastModified":"2018-12-11T22:19:29.657Z","container":"asset-00000000-0000-0000-0000-000000000000","storageAccountName":"amsacctname","storageEncryptionFormat":"None"
}
}
],"@odata.nextLink":"https:// management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$skiptoken=Asset+517"
}
A continuación, puede solicitar la siguiente página si envía una solicitud "get":
https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$skiptoken=Asset+517
En el ejemplo de C# siguiente se muestra cómo enumerar todos los localizadores de streaming de la cuenta.
var firstPage = await MediaServicesArmClient.StreamingLocators.ListAsync(CustomerResourceGroup, CustomerAccountName);
var currentPage = firstPage;
while (currentPage.NextPageLink != null)
{
currentPage = await MediaServicesArmClient.StreamingLocators.ListNextAsync(currentPage.NextPageLink);
}
Uso de operadores lógicos para combinar las opciones de consulta
Media Services v3 admite los operadores lógicos OR y AND.
En el siguiente ejemplo de REST se comprueba el estado del trabajo:
https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/qbtest/providers/Microsoft.Media/mediaServices/qbtest/transforms/VideoAnalyzerTransform/jobs?$filter=properties/state%20eq%20Microsoft.Media.JobState'Scheduled'%20or%20properties/state%20eq%20Microsoft.Media.JobState'Processing'&api-version=2018-07-01
La misma consulta de C# se construye así:
var odataQuery = new ODataQuery<Job>("properties/state eq Microsoft.Media.JobState'Scheduled' or properties/state eq Microsoft.Media.JobState'Processing'");
client.Jobs.List(config.ResourceGroup, config.AccountName, VideoAnalyzerTransformName, odataQuery);
Opciones de filtrado y ordenación de entidades
En la tabla siguiente se muestra cómo pueden aplicarse las opciones de filtrado y ordenación a diferentes entidades:
Nombre de entidad | Nombre de propiedad | Filter | Pedido de |
---|---|---|---|
Recursos | name |
eq , gt , lt , ge , le |
asc y desc |
properties/alternateId | eq |
||
properties/assetId | eq |
||
properties/created |
eq , gt , lt |
asc y desc |
|
Directivas de claves de contenido | name |
eq , ne , ge , le , gt , lt |
asc y desc |
properties/created |
eq , ne , ge , le , gt , lt |
asc y desc |
|
properties/description |
eq , ne , ge , le , gt , lt |
||
properties/lastModified |
eq , ne , ge , le , gt , lt |
asc y desc |
|
properties/policyId |
eq , ne |
||
Trabajos | name | eq |
asc y desc |
properties/state |
eq , ne |
||
properties/created |
gt , ge , lt , le |
asc y desc |
|
properties/lastModified |
gt , ge , lt , le |
asc y desc |
|
Localizadores de streaming | name |
eq , ne , ge , le , gt , lt |
asc y desc |
properties/created |
eq , ne , ge , le , gt , lt |
asc y desc |
|
properties/endTime |
eq , ne , ge , le , gt , lt |
asc y desc |
|
Directivas de streaming | name |
eq , ne , ge , le , gt , lt |
asc y desc |
properties/created |
eq , ne , ge , le , gt , lt |
asc y desc |
|
Transformaciones | name | eq |
asc y desc |
properties/created |
gt , ge , lt , le |
asc y desc |
|
properties/lastModified |
gt , ge , lt , le |
asc y desc |
Obtener ayuda y soporte técnico
Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes:
- PREGUNTAS Y RESPUESTAS
-
Stack Overflow. Etiquete las preguntas con
azure-media-services
. - @MSFTAzureMedia o use @AzureSupport para solicitar soporte técnico.
- Abra una incidencia de soporte técnico a través del Azure Portal.