Assumi il pieno controllo del tuo spazio di archiviazione utilizzando la nostra API

Se preferisci utilizzare la tua soluzione personalizzata per gestire l'archiviazione dei tuoi dati online, senza utilizzare un browser, puoi utilizzare la nostra API. In questa pagina puoi trovare esempi di come lavorare con la nostra API. Continueremo a espanderlo e aggiungere ulteriori informazioni nel tempo per rendere il lavoro con l'API il più semplice possibile. Se hai commenti, idee o domande su questa funzione, non esitare a inviarci un'e-mail a support@myairbridge.com.

Nozioni di base su WebDAV

Introduzione

  • È possibile utilizzare curl per tutte le chiamate.

Autenticazione

  • Puoi autenticarti utilizzando l'intestazione di autenticazione di base.
  • Oppure aggiungi semplicemente --user "username:password" alle tue chiamate curl.
  • Per le directory protette solo da password, ospite funzionerà sempre come nome utente (ad esempio, ospite:password).

Sovrascrivi intestazione

  • Se manca l'intestazione, T è il valore predefinito.
  • F Valore = i file/directory di destinazione sono protetti dalla sovrascrittura.
  • T Valore = I file/directory di destinazione verranno sovrascritti se esistono. Le directory non vengono unite ma completamente sostituite.

Ottieni i dettagli del nodo

  • Il metodo PROPFIND HTTP è definito in RFC2518.

Spazi dei nomi XML

URI Prefisso
DAV: d:
https://xml.myairbridge.cloud/ns m:

Proprietà del nodo

Proprietà Nota Dir File
d:href Dovresti evitare di utilizzare questo URL. È qui solo per compatibilità con i client WebDAV nativi. Utilizza invece m:node-url.
m:node-url URL di questo nodo.
d:creationdate Registra l'ora e la data di creazione della risorsa.
d:displayname Fornisce un nome per la risorsa adatto alla presentazione a un utente.
d:getcontentlength Dimensione del nodo in byte.
d:getetag ETag unico. NO
d:getlastmodified Data dell'ultima modifica.
d:quota-available-bytes Dimensioni di archiviazione disponibili libere in byte. NO
d:resourcetype Contiene l'elemento d:collection se il nodo è una directory.

Esempio

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>

Crea una directory

  • La cartella principale deve esistere.
curl -X MKCOL 'PARENT_DIRECTORY_URL/DIRECTORY_NAME'

Copia

  • Sovrascrive un file/directory di destinazione di default.
  • Utilizzare l'intestazione Sovrascrivi per evitare la sovrascrittura.

Copia un file

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

Copia una directory

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

Copia una directory senza il suo contenuto

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

Sposta

  • Sovrascrive un file/directory di destinazione di default.
  • Utilizzare l'intestazione Sovrascrivi per evitare la sovrascrittura.

Sposta un file

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

Sposta una directory

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

Elimina

Elimina un file

curl -X DELETE 'FILE_URL'

Elimina una directory

curl -X DELETE 'DIRECTORY_URL'

Scarica

Scarica un intero file

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

Download in pezzi

  1. Per garantire che la versione corrente del file sia letta in modo coerente, l'URL di download deve essere prima ottenuta.

    curl -i 'FILE_URL'
    

    Intestazioni di risposta:

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

    Se la reindirizzazione è riuscita, la risposta contiene l'intestazione Location il cui valore verrà utilizzato per scaricare parti del file. Questo URL viene utilizzato per garantire che venga letta questa particolare versione del file.

  2. Lettura di parti individuali del file. Ad esempio, i primi 500 byte vengono scaricati utilizzando un'intestazione Range e salvati nel file chunk_file.bin.

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

Caricamento

  • Dovresti utilizzare l'URL m:node-url come una TARGET_DIRECTORY_URL.

Carica un intero file

  • Per preservare il nome file, utilizzare l'URL della directory di destinazione con una barra `/` finale.
  • Per rinominare il file, aggiungi il nuovo nome file all'URL della directory di destinazione.
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/'
curl -T 'path/to/some.file' 'TARGET_DIRECTORY_URL/NEW_FILE.NAME'

Caricamento in pezzi

  1. Crea un caricamento nella directory di destinazione.
  2. Carica tutti i pezzi utilizzando l'intestazione di risposta <code>X-Upload-Chunk-Url</code>.
  3. Dopo aver caricato l'ultimo pezzo, il server crea automaticamente il file di destinazione.

Creazione di un caricamento

  • Il nome del caricamento (X-Upload-Name) deve essere univoco nella directory. Non puoi avere due caricamenti simultanei con lo stesso nome.
Intestazioni
Intestazione Valore Descrizione
X-Nome-Caricamento* 1-128 caratteri UTF-8 Nome di caricamento univoco nella directory di destinazione.
Nome X-File* 1-128 caratteri UTF-8 Nome del file di destinazione.
Dimensione X-File* byte Dimensione file.
X-Last-Modified Timestamp Unix Data ultima modifica del file. Se non specificato, viene utilizzata la data corrente.
Esempio 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://...

Caricamento di pezzi di file

  • La creazione di un caricamento in pezzi restituisce l'intestazione X-Upload-Chunk-Url. Utilizza questo URL per caricare tutti i pezzi.
  • I pezzi possono essere caricati in parallelo.
  • Non è necessario seguire l'ordine dei pezzi.
  • I pezzi non devono sovrapporsi.
Intestazioni
Intestazione Valore Descrizione
Nome X-File* 1-128 caratteri UTF-8 Nome di caricamento univoco nella directory di destinazione.
X-File-Range* Da-A Offset in byte
Esempio cURL
curl -X PUT \
    -H 'X-Upload-Name: upload-name' \
    -H 'X-File-Range: 0-1048576' \
    'UPLOAD_CHUNK_URL'

Caricamento in blocco

  • Velocizza il caricamento di file di piccole dimensioni.
  • La dimensione non deve superare i 100 MiB.
Esempio 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 deve essere utilizzato per le interruzioni di riga):

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