Skip to main content
POST
Pobierz podpisane adresy URL PUT dla należącego do Ciebie przesyłania obrazu referencyjnego. Obraz o rozmiarze 8 MiB ma najwyżej dwie części. Zapisz ETag zwrócony przez każde PUT do użycia w upload_complete.

Uwierzytelnianie i uprawnienia

string
wymagane
Wyślij klucz API VoiceCheap w tym nagłówku. Obsługiwany jest również nagłówek Authorization: Bearer z tym samym kluczem API. Tokeny dostępu OAuth są akceptowane tylko przez MCP, a nie przez ten endpoint REST.
Wymagane uprawnienia: thumbnails:write. Wymagana jest aktywna płatna subskrypcja. Uprawnienia nie zmieniają ról w zespole, własności zasobów, kredytów na multimedia ani limitów planu.

Parametry

string
Opcjonalne na poziomie transportu: jeśli identyfikator zostanie pominięty, serwer doda go przed walidacją. Podaj własny, stały UUID v4, aby bezpiecznie odzyskać wynik po utracie odpowiedzi.Format: “uuid”. Wzorzec: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$.
string
wymagane
uploadId zwrócony przez akcję upload_initialize tej domeny.Format: “uuid”. Wzorzec: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$.
array
wymagane
Lista wartości. Strukturę elementów opisuje pełny schemat danych wejściowych.Minimalna liczba elementów: 1. Maksymalna liczba elementów: 2.
Poniższy JSON Schema zachowuje dokładne nazwy pól, typy zagnieżdżone, wartości domyślne, ograniczenia i akceptowane wartości udostępniane przez mechanizm wykrywania. Dodatkowe reguły zależności między polami znajdują się w uwagach do operacji.

Idempotencja

Dla każdej operacji zmieniającej dane użyj UUID v4 w requestId lub w nagłówku HTTP Idempotency-Key. Po awarii sieci użyj ponownie tego samego identyfikatora i identycznych argumentów. Jeśli podasz oba, muszą być zgodne. Ponowienie zapisanego żądania nie powtarza operacji ani nie zużywa kolejnego wywołania z miesięcznego limitu. Żądania zakończone błędem lub przerwane nie są automatycznie uruchamiane ponownie. Każda operacja zmieniająca dane może zwrócić HTTP 202, gdy ponowienie napotka to samo żądanie nadal w stanie running, nawet jeśli jej pierwsze wykonanie zwykle jest synchroniczne. Jeśli wykonanie się zakończyło, ale resultStored ma wartość false, ponowienie zwraca HTTP 200 z zapisanym stanem żądania zamiast pierwotnego wyniku. Pobierz wynik za pomocą akcji historii, wyniku lub pobierania właściwej dla danej domeny.

Przykłady żądań

Zastąp przykładowe identyfikatory zasobów i klucze multimediów wartościami zwróconymi dla Twojego konta. Przy ponawianiu tej samej operacji zmieniającej dane zachowaj identyfikator żądania.

Odpowiedź

Pierwsze pomyślne wykonanie zwraca HTTP 200 z wynikiem operacji w data. Ponowienie może zamiast tego zwrócić zapisany stan żądania. Przykład przedstawia jedną obsługiwaną odpowiedź, bez wszystkich opcjonalnych pól. Tablica tymczasowych podpisanych adresów URL PUT, po jednym dla każdego unikalnego żądanego numeru części. Odpowiedź nie zawiera bajtów obrazu, wartości ETags ani pól rozmiaru poszczególnych części.

Pola wyniku

Odzyskaj żądanie i sprawdź jego stan

Używaj tego samego identyfikatora także po utracie połączenia. Jeśli resultStored ma wartość false, pobierz wynik za pomocą odpowiedniej akcji historii, wyniku lub pobierania. Nigdy nie uruchamiaj drugiego generowania tylko po to, aby sprawdzić postęp.
HTTP 200

Uwagi do operacji

  • Wymaga thumbnails:write; dodatkowy zakres przesyłania nie jest potrzebny.
  • uploadId to UUID z initialize. partNumbers zawiera 1–2 liczby całkowite, każdą w zakresie od 1 do 2, a każda część musi istnieć dla zadeklarowanego fileSize tej sesji. Zduplikowane żądane numery części są scalane do jednego adresu URL.
  • Wyślij surowe bajty binarne każdej części metodą PUT na odpowiedni zwrócony adres URL. Content-Length jest objęty podpisem i musi być dokładnie równy min(partSize, fileSize - (partNumber - 1) × partSize). W przykładzie dla 7 MiB część 1 ma 5,242,880 bajtów, a część 2 ma 2,097,152 bajtów. Nie wysyłaj JSON, multipart/form-data ani base64 na podpisany adres URL.
  • Zapisz nagłówek odpowiedzi ETag z każdego pomyślnego PUT i wyślij te wartości do thumbnails_upload_complete. Traktuj podpisane adresy URL jako prywatne, tymczasowe uprawnienia do przesyłania.
  • Tylko przesłany plik należący do połączonego użytkownika może zostać podpisany, ukończony lub przerwany. Te aliasy akceptują tylko sesje JPG, PNG i WebP o rozmiarze maksymalnie 8 MiB, nawet jeśli sesja została utworzona przez inną rodzinę przesyłania.
  • Produkcyjna sesja przesyłania wygasa po 24 godzinach. Podpisane adresy URL części wygasają po jednej godzinie. Zakończenie i przerwanie przesyłania usuwa aktywną sesję; sign-parts i complete zwracają wtedy Upload not found. Żadna z tych odpowiedzi nie zawiera pola expiresAt.
  • Użyj requestId w formacie UUID v4 lub nagłówka HTTP Idempotency-Key i używaj tej samej wartości z identycznymi danymi wejściowymi przy ponownych próbach. Warstwa integracji zapisuje każdą modyfikację i zwraca jej zapisany stan lub wynik bez ponownego wykonywania. Żądanie w stanie failed lub interrupted nie jest automatycznie ponawiane.
  • Aby uzyskać nowe adresy URL po ich wygaśnięciu po jednej godzinie, gdy sesja jest nadal aktywna, wywołaj sign-parts z nowym requestId. Ponowienie z tym samym requestId zwraca zapisany wynik, w tym stare adresy URL.

Wykorzystanie

Każde pomyślne wywołanie zużywa jedno wywołanie z miesięcznego limitu API/MCP. Obowiązują również kredyty na multimedia oraz limity generowania danej operacji.

Błędy