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

  1. 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.

  2. 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

  1. Utwórz przesyłanie do katalogu docelowego.
  2. Prześlij wszystkie fragmenty za pomocą nagłówka odpowiedzi <code>X-Upload-Chunk-Url</code>.
  3. 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--