Ten dokument został przetłumaczony przez AI. W przypadku niedokładności, proszę odnieść się do wersji angielskiej
Przesyłanie plików zarówno dla pól załączników, jak i dla kolekcji plików, może być obsługiwane za pośrednictwem HTTP API. Sposób wywołania różni się w zależności od silnika przechowywania danych używanego przez załącznik lub kolekcję plików.
W przypadku wbudowanych otwartych silników przechowywania danych, takich jak S3, OSS i COS, wywołanie HTTP API jest takie samo jak to używane przez funkcję przesyłania w interfejsie użytkownika, gdzie pliki są przesyłane przez serwer. Wywołania API wymagają przekazania tokenu JWT opartego na logowaniu użytkownika w nagłówku żądania Authorization; w przeciwnym razie dostęp zostanie odrzucony.
Proszę zainicjować akcję create na zasobie attachments (tabela attachments), wysyłając żądanie POST i przesyłając zawartość binarną za pośrednictwem pola file. Po wywołaniu plik zostanie przesłany do domyślnego silnika przechowywania danych.
Aby przesłać pliki do innego silnika przechowywania danych, mogą Państwo użyć parametru attachmentField w celu określenia silnika przechowywania danych skonfigurowanego dla pola kolekcji. Jeśli nie jest skonfigurowany, plik zostanie przesłany do domyślnego silnika przechowywania danych.
Przesyłanie do kolekcji plików automatycznie wygeneruje rekord pliku. Proszę zainicjować akcję create na zasobie kolekcji plików, wysyłając żądanie POST i przesyłając zawartość binarną za pośrednictwem pola file.
Podczas przesyłania do kolekcji plików nie ma potrzeby określania silnika przechowywania danych; plik zostanie przesłany do silnika przechowywania danych skonfigurowanego dla tej kolekcji.
W przypadku silników przechowywania danych kompatybilnych z S3, dostarczanych za pośrednictwem komercyjnej wtyczki S3-Pro, przesyłanie za pomocą HTTP API wymaga kilku kroków.
Pobieranie informacji o silniku przechowywania danych
Proszę zainicjować akcję getBasicInfo na kolekcji storages, uwzględniając nazwę przechowywania danych, aby zażądać informacji konfiguracyjnych silnika przechowywania danych.
Przykład zwróconych informacji konfiguracyjnych silnika przechowywania danych:
Pobieranie wstępnie podpisanego adresu URL od dostawcy usługi
Proszę zainicjować akcję createPresignedUrl na zasobie fileStorageS3, wysyłając żądanie POST z informacjami związanymi z plikiem w treści żądania, aby uzyskać informacje o wstępnie podpisanym przesyłaniu.
Uwaga:
name: Nazwa plikusize: Rozmiar pliku (w bajtach)type: Typ MIME pliku. Mogą Państwo zapoznać się z: Typowe typy MIMEstorageId: ID silnika przechowywania danych (poleidzwrócone w kroku 1).storageType: Typ silnika przechowywania danych (poletypezwrócone w kroku 1).Przykładowe dane żądania:
Struktura danych uzyskanych informacji o wstępnie podpisanym adresie URL jest następująca:
Przesyłanie pliku
Proszę użyć zwróconego putUrl do wykonania żądania PUT, przesyłając plik jako treść żądania.
Uwaga:
putUrl: PoleputUrlzwrócone w poprzednim kroku.file_path: Lokalna ścieżka pliku do przesłania.Przykładowe dane żądania:
Tworzenie rekordu pliku
Po pomyślnym przesłaniu, proszę utworzyć rekord pliku, inicjując akcję create na zasobie attachments (tabela attachments) za pomocą żądania POST.
Wyjaśnienie danych zależnych w
data-raw:
title: PolefileInfo.titlezwrócone w poprzednim kroku.filename: PolefileInfo.keyzwrócone w poprzednim kroku.extname: PolefileInfo.extnamezwrócone w poprzednim kroku.path: Domyślnie puste.size: PolefileInfo.sizezwrócone w poprzednim kroku.url: Domyślnie puste.mimetype: PolefileInfo.mimetypezwrócone w poprzednim kroku.meta: PolefileInfo.metazwrócone w poprzednim kroku.storageId: Poleidzwrócone w kroku 1.Przykładowe dane żądania:
Pierwsze trzy kroki są takie same jak w przypadku przesyłania do pola załącznika. Jednak w czwartym kroku muszą Państwo utworzyć rekord pliku, inicjując akcję create na zasobie kolekcji plików za pomocą żądania POST i przesyłając informacje o pliku w treści żądania.
Wyjaśnienie danych zależnych w
data-raw:
title: PolefileInfo.titlezwrócone w poprzednim kroku.filename: PolefileInfo.keyzwrócone w poprzednim kroku.extname: PolefileInfo.extnamezwrócone w poprzednim kroku.path: Domyślnie puste.size: PolefileInfo.sizezwrócone w poprzednim kroku.url: Domyślnie puste.mimetype: PolefileInfo.mimetypezwrócone w poprzednim kroku.meta: PolefileInfo.metazwrócone w poprzednim kroku.storageId: Poleidzwrócone w kroku 1.Przykładowe dane żądania: