Übernehmen Sie die volle Kontrolle über Ihren Speicher mit unserer API

Wenn Sie es vorziehen, Ihren Online-Datenspeicher mit Ihrer eigenen Lösung zu verwalten, ohne einen Browser zu verwenden, können Sie unsere API verwenden. Auf dieser Seite finden Sie Beispiele dafür, wie Sie mit unserer API arbeiten können. Wir werden die Seite erweitern und im Laufe der Zeit weitere Informationen hinzufügen, um Ihnen die Arbeit mit der API so einfach wie möglich zu machen. Wenn Sie Kommentare, Ideen oder Fragen zu dieser Funktion haben, können Sie uns gerne eine E-Mail schicken an support@myairbridge.com.

WebDAV-Grundlagen

Einführung

  • Sie können cURL für alle Aufrufe verwenden.

Authentifizierung

  • Sie können sich mit dem Basic-Authentifizierungs-Header authentifizieren.
  • Oder fügen Sie einfach --user "username:password" zu Ihren cURL-Aufrufen hinzu.
  • Bei Verzeichnissen, die nur durch ein Passwort geschützt sind, funktioniert guest immer als Benutzername (z.B. guest:password).

Header überschreiben

  • Wenn der Header fehlt, ist T der Standardwert.
  • F Wert = Zieldateien/Verzeichnisse sind vor dem Überschreiben geschützt.
  • T Wert = Zieldateien/Verzeichnisse werden überschrieben, wenn sie existieren. Verzeichnisse werden nicht zusammengeführt, sondern vollständig ersetzt.

Knoten-Details abrufen

  • PROPFIND HTTP-Methode ist definiert in RFC2518.

XML-Namensräume

URI Präfix
DAV: d:
https://xml.myairbridge.cloud/ns m:

Knoteneigenschaften

Eigenschaft Knoten Dir Datei
d:href Sie sollten die Verwendung dieser URL vermeiden. Sie dient nur der Kompatibilität mit nativen WebDAV-Clients. Verwenden Sie stattdessen m:node-url. Ja Ja
m:node-url URL dieses Knotens. Ja Ja
d:creationdate Zeichnet die Zeit und das Datum auf, an dem die Ressource erstellt wurde. Ja Ja
d:displayname Bietet einen Namen für die Ressource, der sich für die Präsentation für einen Anwender eignet. Ja Ja
d:getcontentlength Größe des Knotens in Bytes. Ja Ja
d:getetag Eindeutiger ETag. Nein / Keine Ja
d:getlastmodified Datum der letzten Änderung. Ja Ja
d:quota-available-bytes Frei verfügbarer Speicherplatz in Bytes Ja Nein / Keine
d:resourcetype Enthält d:collection Element, wenn der Knoten ein Verzeichnis ist. Ja Ja

Beispiel

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>

Ein Verzeichnis erstellen

  • Der übergeordnete Ordner muss existieren.
curl -X MKCOL 'PARENT_DIRECTORY_URL/DIRECTORY_NAME'

Kopieren

  • Überschreibt standardmäßig eine Zieldatei/ein Verzeichnis
  • Verwenden Sie Header überschreiben, um Überschreiben zu verhindern.

Kopieren einer Datei

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

Kopieren eines Verzeichnisses

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

Kopieren eines Verzeichnisses ohne dessen Inhalt

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

Verschieben

  • Überschreibt standardmäßig eine Zieldatei/ein Verzeichnis
  • Verwenden Sie Header überschreiben, um Überschreiben zu verhindern.

Verschieben einer Datei

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

Verschieben eines Verzeichnisses

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

Löschen

Eine Datei löschen

curl -X DELETE 'FILE_URL'

Ein Verzeichnis löschen

curl -X DELETE 'DIRECTORY_URL'

Herunterladen

Eine ganze Datei herunterladen

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

Stückweise herunterladen

  1. Um sicherzustellen, dass die aktuelle Version der Datei konsistent gelesen wird, muss zunächst die Download-URL ermittelt werden.

    curl -i 'FILE_URL'
    

    Antwort-Kopfzeilen:

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

    Wenn die Weiterleitung erfolgreich ist, enthält die Antwort den Standort-Header, dessen Wert für das Herunterladen von Teilen der Datei verwendet wird. Diese URL wird verwendet, um sicherzustellen, dass diese bestimmte Version der Datei gelesen wird.

  2. Lesen einzelner Teile der Datei. Als Beispiel werden die ersten 500 Bytes unter Verwendung eines Bereichs-Headers heruntergeladen und in der Datei chunk_file.bin gespeichert.

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

Hochladen

  • Sie sollten die URL m:node-url als eine TARGET_DIRECTORY_URL.

Eine ganze Datei hochladen

  • Um den Dateinamen beizubehalten, verwenden Sie die URL des Zielverzeichnisses mit einem abschließenden `/` Schrägstrich.
  • Um die Datei umzubenennen, hängen Sie den neuen Dateinamen an die URL des Zielverzeichnisses an.
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/'
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/NEW_FILE.NAME'

Stückweise hochladen

  1. Erstellen Sie einen Upload im Zielverzeichnis.
  2. Laden Sie alle Stücke (Chunks) mit dem Antwort-Header `X-Upload-Chunk-Url` hoch.
  3. Nachdem der letzte Chunk hochgeladen wurde, erstellt der Server automatisch die Zieldatei.

Erstellen eines Uploads

  • Der Name des Uploads (X-Upload-Name) muss im Verzeichnis eindeutig sein. Sie können nicht 2 gleichzeitige Uploads mit demselben Namen haben.
Kopfzeilen
Kopfzeile Wert Beschreibung
X-Upload-Name* 1-128 UTF-8-Zeichen Eindeutiger Upload-Name im Zielverzeichnis.
X-Dateiname* 1-128 UTF-8-Zeichen Name der Zieldatei.
X-File-Size* Bytes Dateigröße.
X-Last-Modified Unix-Zeitstempel Datum der letzten Änderung der Datei. Wenn nicht angegeben, wird das aktuelle Datum verwendet.
cURL-Beispiel
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://...

Datei Stückweise hochladen (Chunk-Upload)

  • Die Erstellung eines Chunk-Uploads liefert den Header `X-Upload-Chunk-Url`. Verwenden Sie diese URL, um alle Chunks hochzuladen.
  • Chunks können parallel hochgeladen werden.
  • Es ist nicht notwendig, die Reihenfolge der Chunks einzuhalten.
  • Die Chunks dürfen sich nicht überschneiden.
Kopfzeilen
Kopfzeile Wert Beschreibung
X-Dateiname* 1-128 UTF-8-Zeichen Eindeutiger Upload-Name im Zielverzeichnis.
X-File-Range* Von-Bis Ausgleich in Bytes
cURL-Beispiel
curl -X PUT \
    -H 'X-Upload-Name: upload-name' \
    -H 'X-File-Range: 0-1048576' \
    'UPLOAD_CHUNK_URL'

Hochladen in Massen

  • Beschleunigt das Hochladen von kleinen Dateien.
  • Die Größe darf 100 MiB nicht überschreiten.
cURL-Beispiel
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 muss für Zeilenumbrüche verwendet werden):

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