Entiteiten filteren, ordenen en paging

Media Services-logo v3


Waarschuwing

Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de handleiding voor buitengebruikstelling van AMS voor meer informatie.

In dit onderwerp worden de OData-queryopties en ondersteuning voor paginering besproken die beschikbaar zijn wanneer u Azure Media Services v3-entiteiten vermeldt.

Overwegingen

  • Eigenschappen van entiteiten van het type Datetime hebben altijd de UTC-indeling.
  • Spaties in de querytekenreeks moeten met een URL zijn versleuteld voordat u een aanvraag verzendt.

Vergelijkingsoperatoren

U kunt de volgende operators gebruiken om een veld te vergelijken met een constante waarde:

Gelijkheidsoperators:

  • eq: Test of een veld gelijk is aan een constante waarde.
  • ne: Test of een veld niet gelijk is aan een constante waarde.

Bereikoperators:

  • gt: Test of een veld groter is dan een constante waarde.
  • lt: Test of een veld kleiner is dan een constante waarde.
  • ge: Test of een veld groter is dan of gelijk is aan een constante waarde.
  • le: Test of een veld kleiner is dan of gelijk is aan een constante waarde.

Filteren

Gebruik $filter om een OData-filterparameter op te geven om alleen de objecten te zoeken waarin u geïnteresseerd bent.

In het volgende REST-voorbeeld wordt gefilterd op de alternateId-waarde van een 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'

In het volgende C#-voorbeeld wordt gefilterd op de datum waarop de asset is gemaakt:

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

Sorteren op

Gebruik $orderby om de geretourneerde objecten te sorteren op de opgegeven parameter. Bijvoorbeeld:

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

Voor het sorteren van de resultaten in oplopende of aflopende volgorde voegt u asc of desc toe aan de veldnaam, gescheiden door een spatie. Bijvoorbeeld: $orderby properties/created desc.

Skip-token

Als een query-antwoord veel items bevat, retourneert de service een $skiptoken- (@odata.nextLink)-waarde die u gebruikt om de volgende pagina met resultaten op te halen. Gebruik de waarde om door de hele resultatenset te bladeren.

In Media Services v3 kunt u de paginagrootte niet configureren. De paginagrootte varieert per entiteitstype. Lees de volgende afzonderlijke secties voor details.

Als entiteiten worden gemaakt of verwijderd terwijl u door de verzameling bladert, worden de wijzigingen weerspiegeld in de geretourneerde resultaten (als die wijzigingen zich bevinden in het deel van de verzameling dat niet is gedownload).

Tip

Gebruik altijd nextLink om de verzameling op te sommen en wees niet afhankelijk van een specifieke paginagrootte.

De nextLink-waarde wordt alleen weergegeven als er meer dan één pagina met entiteiten is.

Kijk eens naar het volgende voorbeeld waarin $skiptoken wordt gebruikt. Vergeet niet amstestaccount te vervangen door uw accountnaam en de api-version-waarde in te stellen op de meest recente versie.

Als u een lijst met assets zoals deze aanvraagt:

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

Wordt een antwoord geretourneerd dat vergelijkbaar is met deze:

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"
}

Vervolgens vraagt u de volgende pagina aan door een get-aanvraag te verzenden voor:

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

In het volgende C#-voorbeeld ziet u hoe u alle streaminglocators in het account kunt opsommen.

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

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

Logische operators gebruiken om query-opties te combineren

Media Services v3 biedt ondersteuning voor de logische operators OR en AND.

In het volgende REST-voorbeeld wordt de status van de taak gecontroleerd:

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

U bouwt als volgt dezelfde query in C#:

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

Opties van entiteiten filteren en rangschikken

In de volgende tabel ziet u hoe u de filter- en rangschikopties kunt toepassen op verschillende entiteiten:

Entiteitsnaam Naam van eigenschap Filteren Bestellen
Assets naam eq, gt, lt, ge, le asc en desc
properties/alternateId eq
properties/assetId eq
eigenschappen/gemaakt eq, gt, lt asc en desc
Beleid voor inhoudssleutels naam eq, ne, ge, le, gt, lt asc en desc
eigenschappen/gemaakt eq, ne, ge, le, gt, lt asc en desc
eigenschappen/beschrijving eq, ne, ge, le, gt, lt
properties/lastModified eq, ne, ge, le, gt, lt asc en desc
properties/policyId eq, ne
Taken naam eq asc en desc
eigenschappen/status eq, ne
eigenschappen/gemaakt gt, ge, lt, le asc en desc
properties/lastModified gt, ge, lt, le asc en desc
Streaming-locators naam eq, ne, ge, le, gt, lt asc en desc
eigenschappen/gemaakt eq, ne, ge, le, gt, lt asc en desc
properties/endTime eq, ne, ge, le, gt, lt asc en desc
Beleid voor streaming naam eq, ne, ge, le, gt, lt asc en desc
eigenschappen/gemaakt eq, ne, ge, le, gt, lt asc en desc
Transformaties naam eq asc en desc
eigenschappen/gemaakt gt, ge, lt, le asc en desc
properties/lastModified gt, ge, lt, le asc en desc

Help en ondersteuning

U kunt contact opnemen met Media Services met vragen of onze updates op een van de volgende manieren volgen: