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 chiamatecurl
. - 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 . |
SÌ | SÌ |
m:node-url |
URL di questo nodo. | SÌ | SÌ |
d:creationdate |
Registra l'ora e la data di creazione della risorsa. | SÌ | SÌ |
d:displayname |
Fornisce un nome per la risorsa adatto alla presentazione a un utente. | SÌ | SÌ |
d:getcontentlength |
Dimensione del nodo in byte. | SÌ | SÌ |
d:getetag |
ETag unico. | NO | SÌ |
d:getlastmodified |
Data dell'ultima modifica. | SÌ | SÌ |
d:quota-available-bytes |
Dimensioni di archiviazione disponibili libere in byte. | SÌ | NO |
d:resourcetype |
Contiene l'elemento d:collection se il nodo è una directory. |
SÌ | SÌ |
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
-
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. -
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 unaTARGET_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
- Crea un caricamento nella directory di destinazione.
- Carica tutti i pezzi utilizzando l'intestazione di risposta <code>X-Upload-Chunk-Url</code>.
- 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--