REST API
تحميل ومشاركة الملفات
يأخذ هذا البرنامج التعليمي ملفًا محليًا واحدًا يسمى العرض التوضيحي.mp4 ويحوله إلى مشاركة عمل URL. أكمل الخطوات بالترتيب؛ توفر كل استجابة قيمة يستخدمها الطلب التالي.
إنشاء وحفظ مفتاح API
افتح إعدادات المطور، وحدد التحميلات: كتابة، والملفات: قراءة، والمشاركات: كتابة، والمشاركة: قراءة، ثم قم بإنشاء المفتاح. انسخه الآن، فالسر الكامل يظهر مرة واحدة فقط.
النطاقات المتاحة: التحميلات: كتابة، الملفات: قراءة، المشاركات: كتابة، والمشاركة: قراءة.
قم بإعداد المحطة الخاصة بك
ضع المفتاح في متغير بيئة بحيث لا يظهر في كل أمر أو في سجل الصدفة الخاص بك. استبدل العنصر النائب قبل الضغط على Enter.
read -s VIDEO2URL_API_KEY
echo "key loaded"إنشاء مهمة تحميل
أخبر Video2URL باسم الملف الدقيق ونوع MIME وحجم البايت. يؤدي هذا إلى إرجاع تحميل R2 مؤقت URL؛ لم يتم تحميل الفيديو بعد.
POST /api/v1/uploads
curl -sS -X POST https://video2url.com/api/v1/uploads \
-H "Authorization: Bearer $VIDEO2URL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"filename":"demo.mp4","mimeType":"video/mp4","sizeBytes":1048576}'export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"إرسال بايت الفيديو
قم بتحميل العرض التوضيحي.mp4 مباشرة إلى URL المؤقت. لا تقم بإضافة مفتاح Video2URL API إلى طلب PUT هذا. استخدم نوع المحتوى الذي تم إرجاعه بواسطة استجابة الإنشاء والتحميل. قم بتحميل الملف الأولي إلى URL المحدد مسبقًا باستخدام نوع المحتوى الذي تم إرجاعه.
curl --fail-with-body -X PUT "$UPLOAD_URL" \
-H "Content-Type: video/mp4" \
--data-binary @demo.mp4أكمل التحميل وتحقق منه
بعد نجاح PUT، اطلب من Video2URL التحقق من الكائن المخزن وإنشاء سجل الملف. لا تستدعي هذه الخطوة قبل انتهاء عملية PUT.
POST /api/v1/uploads/{uploadId}/complete · GET /api/v1/uploads/{uploadId}
curl -sS -X POST "https://video2url.com/api/v1/uploads/$UPLOAD_ID/complete" \
-H "Authorization: Bearer $VIDEO2URL_API_KEY"export FILE_ID="paste data.file.fileId here"JavaScript & Python
قم بإنشاء أضيق مفتاح تحتاجه. قم بالتدوير عن طريق إنشاء بديل ونشره قبل إلغاء المفتاح القديم. إذا انتهى الوصول المدفوع، فستظل المفاتيح محفوظة ولكن تتوقف المكالمات مؤقتًا؛ يؤدي تجديد الخطة المؤهلة إلى استعادة إمكانية الوصول.
const response = await fetch('https://video2url.com/api/v1/uploads', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.VIDEO2URL_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ filename: 'demo.mp4', mimeType: 'video/mp4', sizeBytes: file.size }),
});
const created = await response.json();import os, requests
headers = {"Authorization": f"Bearer {os.environ['VIDEO2URL_API_KEY']}"}
created = requests.post("https://video2url.com/api/v1/uploads", headers=headers, json={"filename": "demo.mp4", "mimeType": "video/mp4", "sizeBytes": 1048576})
created.raise_for_status()
with open("demo.mp4", "rb") as video:
requests.put(created.json()["data"]["upload"]["url"], data=video).raise_for_status()