Převezměte plnou kontrolu nad svým úložištěm pomocí našeho API

Pokud ke správě online úložiště dat dáváte přednost použití vlastního řešení bez použití prohlížeče, můžete použít naše API. Na této stránce můžete najít příklady, jak pracovat s naším API. Časem budeme přidávat další informace, aby pro vás práce s API byla co nejjednodušší. Máte-li nějaké připomínky, nápady nebo dotazy týkající se této funkce, neváhejte nám poslat e-mail na adresu support@myairbridge.com.

Základy WebDAV

Úvod

  • Volání curl můžete použít pro všechny hovory.

Autentizace

  • Můžete se ověřovat pomocí hlavičky základního ověřování.
  • Nebo stačí přidat --user "username:password" ke svým voláním curl.
  • Pro adresáře chráněné pouze heslem bude guest vždy fungovat jako uživatelské jméno (např. guest:password).

Přepsat záhlaví

  • Pokud záhlaví chybí, T je výchozí hodnota.
  • F hodnota = Cílové soubory/adresáře jsou chráněny proti přepsání.
  • T hodnota = Cílové soubory/adresáře budou přepsány, pokud existují. Adresáře nejsou sloučeny, ale zcela nahrazeny.

Získejte podrobnosti o uzlu

  • PROPFIND HTTP metoda je definována v RFC2518 RFC2518.

Jmenné prostory XML

URI Předpona
DAV: d:
https://xml.myairbridge.cloud/ns m:

Vlastnosti uzlu

Vlastnictví Poznámka Dir Soubor
d:href Tuto adresu URL byste neměli používat. Je zde pouze kvůli kompatibilitě s nativními klienty WebDAV. Místo toho použijte m:node-url. Ano Ano
m:node-url URL tohoto uzlu. Ano Ano
d:creationdate Zaznamenává čas a datum vytvoření zdroje Ano Ano
d:displayname Poskytuje název zdroje, který je vhodný pro prezentaci uživateli. Ano Ano
d:getcontentlength Velikost uzlu v bajtech. Ano Ano
d:getetag Unikátní ETag. Ne Ano
d:getlastmodified Datum poslední změny. Ano Ano
d:quota-available-bytes Volně dostupná velikost úložiště v bajtech Ano Ne
d:resourcetype Obsahuje prvek d:collection, pokud je uzel adresář. Ano Ano

Příklad

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>

Vytvořte adresář

  • Nadřazená složka musí existovat.
curl -X MKCOL 'PARENT_DIRECTORY_URL/DIRECTORY_NAME'

Kopírovat

  • Ve výchozím nastavení přepíše cílový soubor/adresář
  • Chcete-li zabránit přepsání, použijte Přepsat záhlaví.

Zkopírujte soubor

curl -X COPY 'SOURCE_FILE_URL' -H 'Destination: TARGET_FILE_URL' -H 'Overwrite: F'

Zkopírujte adresář

curl -X COPY 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Overwrite: F'

Zkopírujte adresář bez jeho obsahu

curl -X COPY 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Depth: 0'

Přesunout

  • Ve výchozím nastavení přepíše cílový soubor/adresář
  • Chcete-li zabránit přepsání, použijte Přepsat záhlaví.

Přesunout soubor

curl -X MOVE 'SOURCE_FILE_URL' -H 'Destination: TARGET_FILE_URL' -H 'Overwrite: F'

Přesunout adresář

curl -X MOVE 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Overwrite: F'

Vymazat

Smazat soubor

curl -X DELETE 'FILE_URL'

Smazat adresář

curl -X DELETE 'DIRECTORY_URL'

Stažení

Stáhnout celý soubor

curl -L -o 'some.file' 'FILE_URL'

Stahování bloků

  1. Aby bylo zajištěno konzistentní čtení aktuální verze souboru, je nutné nejprve získat adresu URL ke stažení.

    curl -i 'FILE_URL'
    

    Záhlaví odpovědí:

    HTTP/1.1 303 See Other
    Location: https://...
    ...
    

    Pokud je přesměrování úspěšné, odpověď obsahuje Location záhlaví, jehož hodnota bude použita pro stažení části souboru. Tato adresa URL se používá k zajištění čtení této konkrétní verze souboru.

  2. Čtení jednotlivých částí souboru. Prvních 500 bajtů je například staženo pomocí záhlaví Range a uloženy do souboru chunk_file.bin.

    curl -H 'Range: bytes=0-499' -o chunk_file.bin 'URL_FROM_LOCATION_HEADER'
    

Nahrávání

  • Měli byste použít m:node-url URL jako TARGET_DIRECTORY_URL.

Nahrajte celý soubor

  • Chcete-li zachovat název souboru, použijte adresu URL cílového adresáře s koncovým lomítkem `/`.
  • Chcete-li soubor přejmenovat, připojte nový název souboru k adrese URL cílového adresáře.
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/'
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/NEW_FILE.NAME'

Nahrávání bloku

  1. Vytvořte upload v cílovém adresáři.
  2. Nahrajte všechny bloky pomocí `X-Upload-Chunk-Url` záhlaví odpovědi.
  3. Po nahrání posledního bloku server automaticky vytvoří cílový soubor.

Vytváření nahrávání

  • Název nahrávání (X-Upload-Name) musí být v adresáři jedinečný. Nemůžete mít 2 souběžná nahrávání se stejným názvem.
Záhlaví
Záhlaví Hodnota Popis
X-Upload-Name* 1-128 UTF-8 znaků Jedinečný název pro nahrávání v cílovém adresáři.
X-Název-souboru* 1-128 UTF-8 znaků Název cílového souboru.
X-Velikost-souboru* bajtů Velikost souboru.
X-Last-Modified Unix časové razítko Datum poslední úpravy souboru. Pokud není uvedeno, použije se aktuální datum.
příklad 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://...

Nahrání části souboru

  • Vytvoření blokového nahrávání vrátí záhlaví `X-Upload-Chunk-Url`. Tuto adresu URL použijte k nahrání všech bloků.
  • Bloky lze nahrávat paralelně.
  • Není nutné dodržovat pořadí bloků.
  • Bloky se nesmí vzájemně překrývat.
Záhlaví
Záhlaví Hodnota Popis
X-Název-souboru* 1-128 UTF-8 znaků Jedinečný název pro nahrávání v cílovém adresáři.
X-File-Range* od-do Posun v bajtech
příklad cURL
curl -X PUT \
    -H 'X-Upload-Name: upload-name' \
    -H 'X-File-Range: 0-1048576' \
    'UPLOAD_CHUNK_URL'

Hromadné nahrání

  • Urychluje nahrávání malých souborů.
  • Velikost nesmí přesáhnout 100 MiB.
příklad 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 (pro zalomení řádků je nutné použít CRLF):

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