Prenez le contrôle total de votre stockage à l'aide de notre API
Si vous préférez utiliser votre solution personnalisée pour gérer votre stockage de données en ligne, sans utiliser de navigateur, vous pouvez utiliser notre API. Sur cette page, vous trouverez des exemples d'utilisation de notre API. Nous continuerons à l'étoffer et à y ajouter des informations au fil du temps afin de rendre l'utilisation de l'API aussi facile que possible pour vous. Si vous avez des commentaires, des idées ou des questions concernant cette fonctionnalité, n'hésitez pas à nous envoyer un courriel à l'adresse suivante support@myairbridge.com.
Principes de base de WebDAV
Introduction
- Vous pouvez utiliser curl pour tous les appels.
Authentification
- Vous pouvez vous authentifier en utilisant l'en-tête d'authentification Basic.
- Ou ajoutez simplement
--user 'nom d'utilisateur:mot de passe'
à vos appelscurl
. - Pour les répertoires protégés par un mot de passe uniquement,
guest
fonctionnera toujours comme un nom d'utilisateur (par exemple,guest:password
).
Ecraser l'en-tête
- Si l'en-tête est manquant,
T
est la valeur par défaut. F
Valeur = Les fichiers/répertoires cibles sont protégés contre l"écrasement.T
Valeur = Les fichiers/répertoires cibles seront écrasés s'ils existent. Les répertoires ne sont pas fusionnés mais complètement remplacés.
Obtenir les détails d'un nœud
-
La méthode HTTP
PROPFIND
est définie dans la RFC2518.
Espaces de noms XML
URI | Préfixe |
---|---|
DAV: | d: |
https://xml.myairbridge.cloud/ns | m: |
Propriétés des nœuds
Propriété | Note | Dir | Fichier |
---|---|---|---|
d:href |
Vous devez éviter d'utiliser cette URL. Elle n'est là que pour assurer la compatibilité avec les clients WebDAV natifs. Utilisez plutôt m:node-url . |
Oui | Oui |
m:node-url |
URL de ce noeud. | Oui | Oui |
d:creationdate |
Enregistre l'heure et la date de création de la ressource. | Oui | Oui |
d:displayname |
Fournit un nom pour la ressource qui convient à la présentation à un utilisateur. | Oui | Oui |
d:getcontentlength |
Taille du noeud en octets. | Oui | Oui |
d:getetag |
ETag unique. | Non | Oui |
d:getlastmodified |
Date de la dernière modification. | Oui | Oui |
d:quota-available-bytes |
Taille du stockage disponible en octets. | Oui | Non |
d:resourcetype |
Contient l'élément d:collection si le noeud est un répertoire. |
Oui | Oui |
Exemple
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>
Créer un répertoire
- Le dossier parent doit exister.
curl -X MKCOL 'PARENT_DIRECTORY_URL/DIRECTORY_NAME'
Copier
- Écrase un fichier/répertoire cible par défaut.
- Utiliser l'en-tête Ecraser pour empêcher l'écrasement.
Copier un fichier
curl -X COPY 'SOURCE_FILE_URL' -H 'Destination: TARGET_FILE_URL' -H 'Overwrite: F'
Copier un répertoire
curl -X COPY 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Overwrite: F'
Copier un répertoire sans son contenu
curl -X COPY 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Depth: 0'
Déplacer
- Écrase un fichier/répertoire cible par défaut.
- Utiliser l'en-tête Ecraser pour empêcher l'écrasement.
Déplacer un fichier
curl -X MOVE 'SOURCE_FILE_URL' -H 'Destination: TARGET_FILE_URL' -H 'Overwrite: F'
Déplacer un répertoire
curl -X MOVE 'SOURCE_DIRECTORY_URL' -H 'Destination: TARGET_DIRECTORY_URL' -H 'Overwrite: F'
Supprimer
Supprimer un fichier
curl -X DELETE 'FILE_URL'
Supprimer un répertoire
curl -X DELETE 'DIRECTORY_URL'
Télécharger
Télécharger un fichier entier
curl -L -o 'some.file' 'FILE_URL'
Téléchargement fractionné
-
Pour garantir que la version actuelle du fichier est lue de manière cohérente, l'URL de téléchargement doit d'abord être obtenue.
curl -i 'FILE_URL'
En-têtes de réponse :
HTTP/1.1 303 See Other Location: https://... ...
Si la redirection est réussie, la réponse contient un en-tête
Location
dont la valeur sera utilisée pour le téléchargement de parties du fichier. Cette URL est utilisée pour s'assurer que cette version particulière du fichier est lue. -
Lecture de parties individuelles du fichier. Par exemple, les 500 premiers octets sont téléchargés à l'aide d'un en-tête Range et enregistrés dans le fichier
chunk_file.bin
.curl -H 'Range: bytes=0-499' -o chunk_file.bin 'URL_FROM_LOCATION_HEADER'
Télécharger
- Vous devez utiliser l'URL
m:node-url
comme uneTARGET_DIRECTORY_URL
.
Télécharger un fichier entier
- Pour conserver le nom du fichier, utilisez l'URL du répertoire de destination avec une barre oblique `/` à la fin.
- Pour renommer le fichier, ajoutez le nouveau nom de fichier à l'URL du répertoire de destination.
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/'
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/NEW_FILE.NAME'
Chargement fractionné
- Créer un téléchargement dans le répertoire de destination.
- Télécharger tous les morceaux en utilisant l'en-tête de réponse <code>X-Upload-Chunk-Url</code>.
- Une fois le dernier morceau téléchargé, le serveur crée automatiquement le fichier cible.
Créer un téléchargement
- Le nom du téléchargement (
X-Upload-Name
) doit être unique dans le répertoire. Vous ne pouvez pas avoir deux téléchargements simultanés portant le même nom.
En-têtes
En-tête | Valeur | Description |
---|---|---|
X-Nom du téléchargement* | 1-128 caractères UTF-8 | Nom unique du téléchargement dans le répertoire de destination. |
Nom-du-fichier* | 1-128 caractères UTF-8 | Nom du fichier cible. |
Taille du fichier* | octets | Taille du fichier. |
X-Last-Modified | Horodatage Unix | Date de la dernière modification du fichier. Si elle n'est pas spécifiée, c'est la date du jour qui est utilisée. |
Exemple 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://...
Téléchargement d'un fichier par morceaux
- La création d'un téléchargement par morceaux renvoie l'en-tête
X-téléchargement-par-morceau-Url
. Utilisez cette URL pour télécharger tous les morceaux. - Les morceaux peuvent être téléchargés en parallèle.
- Il n'est pas nécessaire de respecter l'ordre des morceaux.
- Les morceaux ne doivent pas se chevaucher.
En-têtes
En-tête | Valeur | Description |
---|---|---|
Nom-du-fichier* | 1-128 caractères UTF-8 | Nom unique du téléchargement dans le répertoire de destination. |
X-File-Range* | From-To Décalage en octets |
Exemple cURL
curl -X PUT \
-H 'X-Upload-Name: upload-name' \
-H 'X-File-Range: 0-1048576' \
'UPLOAD_CHUNK_URL'
Téléchargement en masse
- Accélère le téléchargement de petits fichiers.
- La taille ne doit pas dépasser 100 MiB.
Exemple 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 doit être utilisé pour les sauts de ligne) :
--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--