Obejmij pełną kontrolę nad swoją pamięcią, korzystając z naszego API
Jeśli wolisz korzystać z własnego rozwiązania do zarządzania pamięcią online, bez użycia przeglądarki, możesz skorzystać z naszego API. Na tej stronie znajdziesz przykłady wyjaśniające, jak korzystać z naszego API. Nieustannie rozwijamy tę sekcję i dodajemy nowe informacje, aby korzystanie z naszego API było możliwie jak najprostsze. W przypadku pytań, uwag lub pomysłów dotyczących tej funkcjonalności, skontaktuj się z nami pod adres support@myairbridge.com.
Podstawy WebDAV
Wstęp
- Możesz wykonywać wszystkie połączenia za pośrednictwem cURL.
Uwierzytelnianie
- Uwierzytelnienie jest możliwe za pomocą nagłówka Basic authentication.
- Możesz też po prostu dodać
--user "username:password"
do swoich połączeń za pośrednictwem cURL. - W przypadku katalogów chronionych hasłem „guest” zawsze będzie działał jako „username” (np. guest:password).
Nagłówek Overwrite
- Jeśli brakuje nagłówka,
T
jest wartością domyślną. F
Wartość = ochrona plików/katalogów docelowych przed nadpisaniem.T
Wartość = istniejące pliki/katalogi docelowe zostaną nadpisane. Katalogi nie są scalane, lecz w całości zastępowane.
Uzyskaj szczegóły węzła
- Metoda PROPFIND HTTP jest zdefiniowana w RFC2518 RFC2518.
Przestrzenie nazw w XML
URI | Prefiks |
---|---|
DAV: | d: |
https://xml.myairbridge.cloud/ns | m: |
Właściwości węzła
Właściwość | api.note | Katalog | Plik |
---|---|---|---|
d:href |
Należy unikać korzystania z tego adresu URL. Znajduje się on tutaj tylko dla kompatybilności z natywnymi klientami WebDAV. Zamiast tego korzystaj z m:node-url . |
Tak | Tak |
m:node-url |
URL tego węzła. | Tak | Tak |
d:creationdate |
Rejestruje godzinę i datę utworzenia zasobu. | Tak | Tak |
d:displayname |
Nadaje zasobowi nazwę, która jest odpowiednia do przedstawienia użytkownikowi. | Tak | Tak |
d:getcontentlength |
Rozmiar węzła w bajtach. | Tak | Tak |
d:getetag |
Niepowtarzalny ETag. | Nie | Tak |
d:getlastmodified |
Data ostatniej modyfikacji. | Tak | Tak |
d:quota-available-bytes |
Dostępna pamięć w bajtach. | Tak | Nie |
d:resourcetype |
Zawiera element d:collection , jeśli węzeł jest katalogiem. |
Tak | Tak |
Przykład
curl -X PROPFIND 'DIRECTORY_URL'
Response:
<?xml version="1.0" encoding="utf-8"?>
<d:multistatus xmlns:d="DAV:" xmlns:m="https://xml.myairbridge.cloud/ns">
<d:response>
<d:href>DIRECTORY_URL</d:href>
<m:node-url>DIRECTORY_URL</m:node-url>
<d:propstat>
<d:prop>
<d:creationdate>Mon, 01 Jan 2024 00:00:00 GMT</d:creationdate>
<d:getcontentlength>123456</d:getcontentlength>
<d:displayname>Directory name</d:displayname>
<d:getlastmodified>Mon, 01 Jan 2024 00:00:00 GMT</d:getlastmodified>
<d:resourcetype>
<d:collection/>
</d:resourcetype>
<d:quota-available-bytes>5497558015424</d:quota-available-bytes>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>DIRECTORY_URL/SUBDIRECTORY</d:href>
<m:node-url>DIRECTORY_URL/SUBDIRECTORY</m:node-url>
<d:propstat>
<d:prop>
<d:creationdate>Mon, 01 Jan 2024 00:00:00 GMT</d:creationdate>
<d:getcontentlength>0</d:getcontentlength>
<d:displayname>Subdirectory name</d:displayname>
<d:getlastmodified>Mon, 01 Jan 2024 00:00:00 GMT</d:getlastmodified>
<d:resourcetype>
<d:collection/>
</d:resourcetype>
<d:quota-available-bytes>5497558015424</d:quota-available-bytes>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>DIRECTORY_URL/FILE</d:href>
<m:node-url>DIRECTORY_URL/FILE</m:node-url>
<d:propstat>
<d:prop>
<d:creationdate>Mon, 01 Jan 2024 00:00:00 GMT</d:creationdate>
<d:getcontentlength>123456</d:getcontentlength>
<d:displayname>File name</d:displayname>
<d:getlastmodified>Mon, 01 Jan 2024 00:00:00 GMT</d:getlastmodified>
<d:resourcetype/>
<d:getetag>54e93f66461535114d8bc6745f66df38</d:getetag>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
</d:multistatus>
Utwórz katalog
- Musi istnieć folder nadrzędny.
curl -X MKCOL 'PARENT_DIRECTORY_URL/DIRECTORY_NAME'
Kopiuj
- Domyślnie nadpisuje plik/katalog docelowy.
- Użyj nagłówka Overwrite, aby zapobiegać nadpisywaniu.
Kopiuj plik
curl -X COPY 'SOURCE_FILE_URL' -H 'Destination: TARGET_FILE_URL' -H 'Overwrite: F'
Kopiuj katalog
curl -X COPY 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Overwrite: F'
Kopiuj katalog bez zawartości
curl -X COPY 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Depth: 0'
Przenieś
- Domyślnie nadpisuje plik/katalog docelowy.
- Użyj nagłówka Overwrite, aby zapobiegać nadpisywaniu.
Przenieś plik
curl -X MOVE 'SOURCE_FILE_URL' -H 'Destination: TARGET_FILE_URL' -H 'Overwrite: F'
Przenieś katalog
curl -X MOVE 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Overwrite: F'
Usuń
Usuń plik
curl -X DELETE 'FILE_URL'
Usuń katalog
curl -X DELETE 'DIRECTORY_URL'
Pobierz
Pobierz cały plik
curl -L -o 'some.file' 'FILE_URL'
Pobieranie fragmentaryczne
-
W celu zapewnienia spójnego odczytania bieżącej wersji pliku niezbędne jest pozyskanie adresu URL pobierania.
curl -i 'FILE_URL'
Nagłówki odpowiedzi:
HTTP/1.1 303 See Other Location: https://... ...
Jeśli przekierowanie zakończy się pomyślnie, odpowiedź zawiera nagłówek
Location
, którego wartość zostanie użyta do pobrania części pliku. Ten adres URL jest wykorzystywany w celu zapewnienia, że ta konkretna wersja pliku zostanie odczytana. -
Odczytywanie poszczególnych części pliku. Na przykład pierwsze 500 bajtów jest pobieranych przy użyciu nagłówka Range i zapisywanych w pliku
chunk_file.bin
.curl -H 'Range: bytes=0-499' -o chunk_file.bin 'URL_FROM_LOCATION_HEADER'
Prześlij
- Należy korzystać z URL
m:node-url
jako TARGET_DIRECTORY_URL.TARGET_DIRECTORY_URL
.
Prześlij cały plik
- W celu zachowania nazwy pliku użyj adresu URL katalogu docelowego z ukośnikiem końcowym „/”.
- Aby zmienić nazwę pliku, dodaj nową nazwę do adresu URL katalogu docelowego.
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/'
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/NEW_FILE.NAME'
Przesyłanie fragmentaryczne
- Utwórz przesyłanie do katalogu docelowego.
- Prześlij wszystkie fragmenty za pomocą nagłówka odpowiedzi <code>X-Upload-Chunk-Url</code>.
- Po przesłaniu ostatniego fragmentu serwer automatycznie tworzy plik docelowy.
Tworzenie przesyłania
- Nazwa przesyłania (
X-Upload-Name
) nie może się powtarzać w katalogu. Nie mogą istnieć dwie jednoczesne instancje przesyłania o tej samej nazwie.
Nagłówki
Nagłówek | Wartość | Opis |
---|---|---|
X-Upload-Name* | Znaki 1-128 UTF-8 | Niepowtarzalna nazwa przesyłania w katalogu docelowym. |
X-File-Name* | Znaki 1-128 UTF-8 | Nazwa pliku docelowego. |
X-File-Size* | bajtów | Rozmiar pliku. |
X-Last-Modified | Unixowy znacznik czasu | Ostatnia data modyfikacji pliku. Jeśli data nie została określona, używana jest bieżąca data. |
Przykład cURL
curl -i -X POST \
-H 'X-Upload-Name: upload-name' \
-H 'X-File-Name: target.filename' \
-H 'X-File-Size: 1000000000' \
-H 'X-Last-Modified: 1234567890' \
'TARGET_DIRECTORY_URL/:chunked-upload'
Response headers:
HTTP/1.1 200 OK
X-Upload-Chunk-Url: https://...
Fragmentarycznie przesyłanie pliku
- Utworzenie przesyłania fragmentarycznego zwraca nagłówek
X-Upload-Chunk-Url
. Użyj tego adresu URL, aby przesłać wszystkie fragmenty. - Fragmenty mogą być przesyłane jednocześnie.
- Zachowanie konkretnej kolejności nie jest konieczne.
- Fragmenty nie mogą się na siebie nakładać.
Nagłówki
Nagłówek | Wartość | Opis |
---|---|---|
X-File-Name* | Znaki 1-128 UTF-8 | Niepowtarzalna nazwa przesyłania w katalogu docelowym. |
X-File-Range* | od do offset w bajtach |
Przykład cURL
curl -X PUT \
-H 'X-Upload-Name: upload-name' \
-H 'X-File-Range: 0-1048576' \
'UPLOAD_CHUNK_URL'
Przesyłanie zbiorcze
- Przyspiesza przesyłanie małych plików.
- Rozmiar nie może przekraczać 100 MiB.
Przykład cURL
curl -X PUT \
-H 'Content-Type: multipart/form-data; boundary=BbC04y' \
--data-binary '@bulk_upload.txt' \
'TARGET_DIRECTORY_URL/:bulk-upload'
bulk_upload.txt
(CRLF należy używać do łamania linii):
--BbC04y
Content-Disposition: file; name="file"; filename="file1.txt"
X-File-Size: 123
... file1.txt contents ...
--BbC04y
Content-Disposition: file; name="file"; filename="file2.txt"
X-File-Size: 299
X-Last-Modified: 1234567890
... file2.txt contents ...
--BbC04y--