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 appels curl.
  • 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é

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

  2. 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 une TARGET_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é

  1. Créer un téléchargement dans le répertoire de destination.
  2. Télécharger tous les morceaux en utilisant l'en-tête de réponse <code>X-Upload-Chunk-Url</code>.
  3. 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--