Filtro, ordinamento e entità di paging

Logo servizi multimediali v3


Avviso

Servizi multimediali di Azure verrà ritirato il 30 giugno 2024. Per altre informazioni, vedere la Guida al ritiro di AMS.

Questo argomento illustra le opzioni di query OData e il supporto per la paginazione disponibili quando si elencano le entità di Servizi multimediali di Azure v3.

Considerazioni

  • Le proprietà delle entità di tipo Datetime sono sempre in formato UTC.
  • Lo spazio vuoto nella stringa di query deve essere con codifica URL prima dell'invio di una richiesta.

Operatori di confronto

Per confrontare un campo con un valore costante, è possibile usare gli operatori seguenti:

Operatori di uguaglianza:

  • eq: verifica se un campo è uguale a un valore costante.
  • ne: verifica se un campo è diverso da un valore costante.

Operatori di intervallo:

  • gt: verifica se un campo è maggiore di un valore costante.
  • lt: verifica se un campo è minore di un valore costante.
  • ge: verifica se un campo è maggiore o uguale a un valore costante.
  • le: verifica se un campo è minore o uguale a un valore costante.

Filtro

Usare $filter per fornire un parametro di filtro OData per trovare solo gli oggetti a cui si è interessati.

L'esempio REST seguente applica un filtro in base al valore alternateId di un asset:

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$filter=properties/alternateId%20eq%20'unique identifier'

L'esempio C# seguente applica un filtro in base alla data di creazione dell'asset:

var odataQuery = new ODataQuery<Asset>("properties/created lt 2018-05-11T17:39:08.387Z");
var firstPage = await MediaServicesArmClient.Assets.ListAsync(CustomerResourceGroup, CustomerAccountName, odataQuery);

Order by

Usare $orderby per ordinare gli oggetti restituiti in base al parametro specificato. Ad esempio:

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01$orderby=properties/created%20gt%202018-05-11T17:39:08.387Z

Per ordinare i risultati in ordine crescente o decrescente, aggiungere asc o desc al nome del campo, separati da uno spazio. Ad esempio: $orderby properties/created desc.

Skip token

Se la risposta di una query contiene molti elementi, il servizio restituisce un valore $skiptoken (@odata.nextLink) da usare per ottenere la pagina di risultati successiva. Usarlo per scorrere l'intero set di risultati.

In Servizi multimediali v3 non è possibile configurare le dimensioni delle pagine. Le dimensioni delle pagine variano in base al tipo di entità. Leggere le singole sezioni che seguono per informazioni dettagliate.

Se vengono create o eliminate entità durante lo scorrimento delle pagine della raccolta, le modifiche si riflettono nei risultati restituiti (se tali modifiche riguardano la parte della raccolta che non è stata scaricata).

Suggerimento

Usare sempre nextLink per enumerare la raccolta e non dipendere da determinate dimensioni di pagina.

Il valore nextLink sarà presente solo se esistono più pagine di entità.

Si consideri l'esempio seguente per vedere dove viene usato $skiptoken. Assicurarsi di sostituire amstestaccount con il proprio nome dell'account e di impostare il valore api-version sulla versione più recente.

Se si richiede un elenco degli asset simile al seguente:

GET  https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/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

Si ottiene una risposta simile a questa:

HTTP/1.1 200 OK

{
"value":[
{
"name":"Asset 0","id":"/subscriptions/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$skiptoken=Asset+517"
}

Si può quindi richiedere la pagina successiva inviando una richiesta get per:

https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$skiptoken=Asset+517

L'esempio in C# seguente illustra come enumerare tutti i localizzatori di streaming nell'account.

var firstPage = await MediaServicesArmClient.StreamingLocators.ListAsync(CustomerResourceGroup, CustomerAccountName);

var currentPage = firstPage;
while (currentPage.NextPageLink != null)
{
    currentPage = await MediaServicesArmClient.StreamingLocators.ListNextAsync(currentPage.NextPageLink);
}

Uso di operatori logici per combinare le opzioni di query

Servizi multimediali v3 supporta gli operatori logici OR e AND.

L'esempio REST seguente controlla lo stato del processo:

https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/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 stessa query viene creata in C# come segue:

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);

Opzioni di filtro e ordinamento delle entità

La tabella seguente illustra come applicare le opzioni di filtro e ordinamento a entità diverse:

Nome dell'entità Nome della proprietà Filtro JSON
Asset name eq, gt, lt, ge, le asc e desc
proprietà/alternateId eq
proprietà/assetId eq
proprietà/creazione eq, gt, lt asc e desc
Criteri chiave simmetrica name eq, ne, ge, le, gt, lt asc e desc
proprietà/creazione eq, ne, ge, le, gt, lt asc e desc
properties/description eq, ne, ge, le, gt, lt
proprietà/lastModified eq, ne, ge, le, gt, lt asc e desc
proprietà/policyId eq, ne
Processi name eq asc e desc
properties/state eq, ne
proprietà/creazione gt, ge, lt, le asc e desc
proprietà/lastModified gt, ge, lt, le asc e desc
Localizzatori di streaming name eq, ne, ge, le, gt, lt asc e desc
proprietà/creazione eq, ne, ge, le, gt, lt asc e desc
proprietà/endTime eq, ne, ge, le, gt, lt asc e desc
Criteri di streaming name eq, ne, ge, le, gt, lt asc e desc
proprietà/creazione eq, ne, ge, le, gt, lt asc e desc
Trasformazioni name eq asc e desc
proprietà/creazione gt, ge, lt, le asc e desc
proprietà/lastModified gt, ge, lt, le asc e desc

Guida e supporto tecnico

È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti tramite uno dei metodi seguenti: