Filtro, ordinamento e entità di paging
Sito Web | AMS Esempi di | codice Guida alla risoluzione dei problemi
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 in base a uno dei metodi seguenti:
- Domande e & risposte
- Stack Overflow. Contrassegna le domande con
azure-media-services
. - @MSFTAzureMedia o usare @AzureSupport per richiedere supporto.
- Aprire un ticket di supporto tramite il portale di Azure.