Прегледайте документите за програмисти

REST API

Качвайте и споделяйте файлове

Този урок взема един локален файл с име demo.mp4 и го превръща в работещ дял URL. Изпълнете стъпките по ред; всеки отговор доставя стойност, използвана от следващата заявка.

1

Създайте и запазете API ключ

Отворете настройките за разработчици, изберете uploads:write, files:read, shares:write и shares:read, след което създайте ключа. Копирайте го сега - пълната тайна се показва само веднъж.

Налични обхвати: uploads:write, files:read, shares:write и shares:read.

Очакван резултат:Имате тайна, която започва с префикса на ключа Video2URL. Пазете го лично.
2

Подгответе своя терминал

Поставете ключа в променлива на средата, така че да не се появява във всяка команда или в хронологията на обвивката ви. Заменете контейнера, преди да натиснете Enter.

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
Очакван резултат:Командата отпечатва зареден ключ, а не самата тайна.
3

Създайте задание за качване

Кажете на Video2URL точното име на файла, типа MIME и размера на байта. Това връща временно R2 качване URL; все още не качва видеоклипа.

POST /api/v1/uploads

curl
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}'
Очакван резултат:JSON отговор, съдържащ data.uploadId и data.upload.url. Запазете и двете стойности за следващите стъпки.
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

Изпратете видео байтовете

Качете демо.mp4 директно във временния URL. Не добавяйте Video2URL API ключа към тази PUT заявка. Използвайте Content-Type, върнат от отговора create-upload. Качете необработения файл в предварително подписания URL, като използвате върнатия тип съдържание.

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
Очакван резултат:Сървърът за качване връща HTTP 200. Празното тяло на отговора е нормално.
5

Завършете и проверете качването

След като PUT успее, кажете на Video2URL да провери съхранения обект и да създаде файловия запис. Не извиквайте тази стъпка, преди PUT да приключи.

POST /api/v1/uploads/{uploadId}/complete · GET /api/v1/uploads/{uploadId}

curl
curl -sS -X POST "https://video2url.com/api/v1/uploads/$UPLOAD_ID/complete" \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY"
Очакван резултат:Отговорът съдържа data.file.fileId. Запазване на FILE_ID; той идентифицира завършения файл.
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

Създайте последното споделяне URL

Създайте скрита връзка от FILE_ID. Нерегистриран означава, че всеки с URL може да го отвори, но той не е поставен в публична директория.

  • Заглавието не е задължително.
  • Паролата не е задължителна.
  • Видимостта не е задължителна.
  • Видимостта по подразбиране е скрита.

POST /api/v1/shares · GET / DELETE /api/v1/shares/{shareId}

curl
curl -sS -X POST https://video2url.com/api/v1/shares \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{"fileId":"$FILE_ID","visibility":"unlisted"}"
Очакван резултат:Отговорът съдържа записа за споделяне и URL. Отворете SHARE_URL в частен прозорец на браузъра, за да го потвърдите.
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

Създайте най-тесния ключ, от който се нуждаете. Завъртете, като създадете и внедрите заместител, преди да отмените стария ключ. Ако платеният достъп приключи, ключовете остават запазени, но разговорите се поставят на пауза; подновяването на отговарящ на условията план възстановява достъпа.

JavaScript
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();
Python
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()