الاتصال إلى واجهة برمجة تطبيقات خدمات الوسائط الإصدار 3 - Node.js
هل تبحث عن وثائق خدمات الوسائط v2 ؟
هل تواجه مشكلة؟ راجع دليل استكشاف الأخطاء وإصلاحها للحصول على حلول للمشكلات المتعلقة باستخدام خدمات الوسائط.
يمكن العثور على نماذج التعليمات البرمجية في صفحة العينات .
توضح لك هذه المقالة كيفية الاتصال ب Azure Media Services v3 node.js SDK باستخدام أسلوب تسجيل الدخول الأساسي للخدمة. ستعمل مع الملفات في مستودع نماذج media-services-v3-node-tutorials . يحتوي نموذج HelloWorld-ListAssets على التعليمات البرمجية للاتصال ثم سرد الأصول في الحساب.
المتطلبات الأساسية
- تثبيت التعليمات البرمجية Visual Studio.
- قم بتثبيت Node.js.
- قم بتثبيت TypeScript.
- إنشاء حساب خدمات الوسائط. تأكد من تذكر اسم مجموعة الموارد واسم حساب خدمات الوسائط.
- إنشاء كيان خدمة للتطبيق الخاص بك. راجع واجهات برمجة التطبيقات للوصول.
Pro نصيحة! احتفظ بهذه النافذة مفتوحة أو انسخ كل شيء في علامة التبويب JSON إلى المفكرة. - تأكد من الحصول على أحدث إصدار من AzureMediaServices SDK ل JavaScript.
هام
راجع اصطلاحات تسمية خدمات وسائط Azure لفهم قيود التسمية المهمة على الكيانات.
استنساخ مستودع نماذج Node.JS
ستعمل مع بعض الملفات في نماذج Azure. استنساخ مستودع نماذج Node.JS.
git clone https://github.com/Azure-Samples/media-services-v3-node-tutorials.git
تثبيت حزم Node.js
تثبيت @azure/arm-mediaservices
npm install @azure/arm-mediaservices
على سبيل المثال، ستستخدم الحزم التالية في package.json الملف.
| الحزمة | الوصف |
|---|---|
@azure/arm-mediaservices |
Azure Media Services SDK. للتأكد من أنك تستخدم أحدث حزمة Azure Media Services، تحقق من npm install @azure/arm-mediaservices. |
@azure/identity |
مطلوب للمصادقة Azure AD باستخدام كيان الخدمة أو الهوية المدارة |
@azure/storage-blob |
Storage SDK. يستخدم عند تحميل الملفات إلى الأصول. |
@azure/abort-controller |
يستخدم جنبا إلى جنب مع عميل التخزين لفترة طويلة من عمليات التنزيل قيد التشغيل |
إنشاء ملف package.json
package.jsonإنشاء ملف باستخدام المحرر المفضل لديك.- افتح الملف والصق التعليمات البرمجية التالية:
{
"name": "media-services-node-sample",
"version": "0.1.0",
"description": "",
"main": "./index.ts",
"dependencies": {
"@azure/arm-mediaservices": "^10.0.0",
"@azure/abort-controller": "^1.0.2",
"@azure/identity": "^2.0.0",
"@azure/storage-blob": "^12.4.0"
}
}
الاتصال إلى عميل Node.js باستخدام TypeScript
نموذج ملف .env
انسخ محتوى هذا الملف إلى ملف يسمى .env. يجب تخزينه في جذر مستودع العمل الخاص بك. هذه هي القيم التي حصلت عليها من صفحة الوصول إلى واجهة برمجة التطبيقات لحساب خدمات الوسائط في المدخل.
للوصول إلى القيم المطلوبة لإدخال في ملف .env ، يوصى أولا بقراءة مقالة كيفية الوصول إلى واجهة برمجة التطبيقات ومراجعتها. يمكنك استخدام إما مدخل Azure أو CLI للحصول على القيم المطلوبة لإدخالها في ملف متغيرات البيئة لهذا النموذج.
بمجرد إنشاء ملف .env ، يمكنك البدء في العمل مع العينات.
# Values from the API Access page in the portal
AADCLIENTID="00000000-0000-0000-0000-000000000000"
AADSECRET="00000000-0000-0000-0000-000000000000"
AADTENANTID="00000000-0000-0000-0000-000000000000"
# Change this to match your Azure AD Tenant domain name.
AADTENANTDOMAIN="microsoft.onmicrosoft.com"
# Set this to your Media Services Account name, resource group it is contained in, and location
ACCOUNTNAME="amsaccount"
RESOURCEGROUP="amsResourceGroup"
# Set this to your Azure Subscription ID
SUBSCRIPTIONID="00000000-0000-0000-0000-000000000000"
# You must change this if you are using Gov Cloud, China, or other non standard cloud regions
AADENDPOINT="https://login.microsoftonline.com"
# DRM Testing
DRMSYMMETRICKEY="add random base 64 encoded string here"
تشغيل نموذج التطبيق HelloWorld-ListAssets
- قم بتشغيل Visual Studio Code من المجلد الجذر.
cd media-services-v3-node-tutorials
code .
- تثبيت الحزم المستخدمة في ملف package.json من Terminal
npm install
قم بعمل نسخة من ملف sample.env ، وأعد تسميته إلى .env وقم بتحديث القيم الموجودة في الملف لمطابقة معلومات حسابك واشتراكك. قد تحتاج إلى جمع هذه المعلومات من مدخل Microsoft Azure أولا.
تغيير الدليل إلى مجلد HelloWorld-ListAssets
cd HelloWorld-ListAssets
- افتح ملف list-assets.ts في مجلد HelloWorld-ListAssets واضغط على المفتاح F5 في التعليمات البرمجية Visual Studio لبدء تشغيل البرنامج النصي. يجب أن تشاهد قائمة بالأصول المعروضة إذا كان لديك أصول بالفعل في الحساب. إذا كان الحساب فارغا، فسترى قائمة فارغة.
لمشاهدة الأصول المدرجة بسرعة، استخدم المدخل لتحميل بعض ملفات الفيديو. سيتم إنشاء الأصول تلقائيا لكل منها وسيعيد تشغيل هذا البرنامج النصي مرة أخرى أسماءها.
نظرة فاحصة على عينة HelloWorld-ListAssets
يوضح لك نموذج HelloWorld-ListAssets كيفية الاتصال بعميل خدمات الوسائط باستخدام كيان الخدمة وقائمة الأصول في الحساب. راجع التعليقات في التعليمات البرمجية للحصول على شرح مفصل لما يفعله.
import { DefaultAzureCredential } from "@azure/identity";
import {
AzureMediaServices
} from '@azure/arm-mediaservices';
// Load the .env file if it exists
import * as dotenv from "dotenv";
dotenv.config();
export async function main() {
// Copy the samples.env file and rename it to .env first, then populate it's values with the values obtained
// from your Media Services account's API Access page in the Azure portal.
const clientId: string = process.env.AADCLIENTID as string;
const secret: string = process.env.AADSECRET as string;
const tenantDomain: string = process.env.AADTENANTDOMAIN as string;
const subscriptionId: string = process.env.SUBSCRIPTIONID as string;
const resourceGroup: string = process.env.RESOURCEGROUP as string;
const accountName: string = process.env.ACCOUNTNAME as string;
// This sample uses the default Azure Credential object, which relies on the environment variable settings.
// If you wish to use User assigned managed identity, see the samples for v2 of @azure/identity
// Managed identity authentication is supported via either the DefaultAzureCredential or the ManagedIdentityCredential classes
// https://docs.microsoft.com/javascript/api/overview/azure/identity-readme?view=azure-node-latest
// See the following examples for how to authenticate in Azure with managed identity
// https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity_2.0.1/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-in-azure-with-managed-identity
// const credential = new ManagedIdentityCredential("<USER_ASSIGNED_MANAGED_IDENTITY_CLIENT_ID>");
const credential = new DefaultAzureCredential();
let mediaServicesClient = new AzureMediaServices(credential, subscriptionId)
// List Assets in Account
console.log("Listing assets in account:")
for await (const asset of mediaServicesClient.assets.list(resourceGroup, accountName, { top:1000 })){
console.log(asset.name);
}
}
main().catch((err) => {
console.error("Error running sample:", err.message);
});
المزيد من العينات
تتوفر العديد من العينات في المستودع. يرجى مراجعة ملف readme للحصول على أحدث العينات المحدثة.
مراجع لمطوري خدمات الوسائط JavaScript/TypeScript
- npm install @azure/arm-mediaservices
- الوثائق المرجعية لوحدات Azure Media Services النمطية Node.js
- مطورو Node.js Azure ل JavaScript &
- Media Services source code in the @azure/azure-sdk-for-js Git Hub repo
- وثائق حزمة Azure لمطوري Node.js
- مفاهيم خدمات الوسائط
- مطورو Node.js Azure ل JavaScript &
- Media Services source code in the @azure/azure-sdk-for-js repo