Bagikan melalui


Pemfilteran, pengurutan, dan penomoran entitas

Logo Azure Media Services v3


Peringatan

Azure Media Services akan dihentikan pada 30 Juni 2024. Untuk informasi selengkapnya, lihat Panduan Penghentian AMS.

Topik ini membahas opsi kueri OData serta dukungan pagination yang tersedia saat Anda mencantumkan entitas Azure Media Services v3.

Pertimbangan

  • Properti entitas dengan tipe Datetime selalu berada dalam format UTC.
  • Spasi kosong dalam string kueri harus dikodekan dalam URL sebelum Anda mengirim permintaan.

Operator perbandingan

Anda dapat menggunakan operator berikut untuk membandingkan bidang dengan nilai konstanta:

Operator kesetaraan:

  • eq: Uji apakah bidang setara dengan nilai konstanta.
  • ne: Uji apakah bidang tidak setara dengan nilai konstanta.

Operator rentang:

  • gt: Uji apakah bidang lebih besar dari nilai konstanta.
  • lt: Uji apakah bidang lebih kecil dari nilai konstanta.
  • ge: Uji apakah bidang lebih besar dari atau setara dengan nilai konstanta.
  • le: Uji apakah bidang kurang dari atau setara dengan nilai konstanta.

Filter

Gunakan $filter untuk menyediakan parameter filter OData dengan tujuan menemukan hanya objek yang Anda minati.

Contoh REST berikut memfilter nilai alternateId dari sebuah aset:

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'

Contoh C# berikut memfilter tanggal yang dibuat oleh aset:

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

Pesan pada

Gunakan $orderby untuk mengurutkan objek yang dikembalikan berdasarkan parameter yang ditentukan. Contohnya:

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

Untuk mengurutkan hasil dalam urutan meningkat atau menurun, tambahkan salah satu antara asc atau desc ke nama bidang, dipisahkan oleh spasi. Contoh: $orderby properties/created desc.

Lewatkan token

Jika respons kueri menampilkan banyak item, layanan akan mengembalikan nilai $skiptoken (@odata.nextLink) yang Anda gunakan untuk mendapatkan halaman hasil berikutnya. Gunakan nilai tersebut untuk menetapkan halaman untuk seluruh set hasil.

Di Media Services v3, tidak dimungkinkan untuk mengonfigurasi ukuran halaman. Ukuran halaman akan bervariasi menurut jenis entitas. Baca bagian tertentu yang mengikuti untuk detailnya.

Jika entitas dibuat atau dihapus saat Anda melakukan menetapkan halaman pada koleksi, perubahan akan ditampilkan dalam hasil (jika perubahan tersebut berada di bagian koleksi yang belum diunduh).

Tip

Selalu gunakan nextLink untuk menghitung koleksi, yang tidak bergantung pada ukuran halaman tertentu.

Nilai nextLink hanya akan ditampilkan jika ada lebih dari satu halaman entitas.

Pertimbangkan contoh berikut, di mana $skiptoken digunakan. Pastikan Anda mengganti amstestaccount dengan nama akun Anda dan menyetel nilai api-version ke versi terbaru.

Jika Anda meminta daftar aset seperti berikut:

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

Anda akan mendapatkan respons yang serupa dengan salah satu respons berikut:

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

Anda kemudian akan meminta halaman berikutnya dengan mengirim permintaan untuk memperoleh:

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

Contoh C# berikut ini menampilkan cara menghitung melalui semua pencari streaming di akun.

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

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

Menggunakan operator logika untuk mengombinasikan opsi kueri

Media Services v3 mendukung operator logika OR dan AND.

Contoh REST berikut akan memeriksa status pekerjaan:

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

Anda membuat kueri yang sama pada C# seperti ini:

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

Memfilter serta memesan opsi entitas

Tabel berikut memperlihatkan cara menerapkan opsi pemfilteran dan pemesanan ke entitas yang berbeda:

Nama entitas Nama properti Filter Pesanan
Aset nama eq, gt, lt, ge, le asc dan desc
properties/alternateId eq
properties/assetId eq
properties/created eq, gt, lt asc dan desc
Kebijakan utama konten nama eq, ne, ge, le, gt, lt asc dan desc
properties/created eq, ne, ge, le, gt, lt asc dan desc
properties/description eq, ne, ge, le, gt, lt
properties/lastModified eq, ne, ge, le, gt, lt asc dan desc
properties/policyId eq, ne
Pekerjaan nama eq asc dan desc
properties/state eq, ne
properties/created gt, ge, lt, le asc dan desc
properties/lastModified gt, ge, lt, le asc dan desc
Pencari streaming nama eq, ne, ge, le, gt, lt asc dan desc
properties/created eq, ne, ge, le, gt, lt asc dan desc
properties/endTime eq, ne, ge, le, gt, lt asc dan desc
Kebijakan streaming nama eq, ne, ge, le, gt, lt asc dan desc
properties/created eq, ne, ge, le, gt, lt asc dan desc
Transformasi nama eq asc dan desc
properties/created gt, ge, lt, le asc dan desc
properties/lastModified gt, ge, lt, le asc dan desc

Dapatkan bantuan dan dukungan

Anda dapat menghubungi Media Services dengan pertanyaan atau mengikuti pembaruan kami dengan salah satu metode berikut: