Ü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 IhrencURL
-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
-
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. -
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 eineTARGET_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
- Erstellen Sie einen Upload im Zielverzeichnis.
- Laden Sie alle Stücke (Chunks) mit dem Antwort-Header `X-Upload-Chunk-Url` hoch.
- 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--