Articles sur : API

Utiliser l'API Leviia Drive - Curl

Il est possible d'envoyer et de recevoir des fichiers directement en ligne de commande (comme par exemple pour l'écriture de scripts).

Installation de Curl :



Quelque soit votre plateforme, il y a de grandes chances que le binaire Curl soit porté pour elle, installez le : https://curl.se/download.html.

Une fois Curl installé, utilisez les commandes suivantes en remplaçant USER par votre nom d'utilisateur et PASSWORD par votre mot de passe d'application.

Envoyer un fichier sur Leviia :


curl -X PUT "https://cloud.leviia.com/remote.php/dav/files/USER/FICHIER" -u 'USER:PASSWORD' -T /CHEMIN/VERS/MON/FICHIER

Envoyer un fichier volumineux sur Leviia :


Les fichiers de plus de 1 Go ne peuvent pas être envoyés en un seul morceau, pour cela il faut le segmenter en chunks de 100 Mo. Voici une documentation vous montrant comment faire.

Télécharger un fichier depuis Leviia :


curl -o /CHEMIN/VERS/MON/FICHIER https://cloud.leviia.com/remote.php/dav/files/USER/FICHIER -u 'USER:PASSWORD'

Supprimer un fichier sur Leviia :


curl -X DELETE https://cloud.leviia.com/remote.php/dav/files/USER/FICHIER -u 'USER:PASSWORD'

Lister le contenu d'un répertoire :


Pour lister le contenu d'un répertoire, intégrez ce code dans votre script.
#!/bin/bash

list_folder () {
  folder=$1
  domain="cloud.leviia.com"
  path='<d:href>/remote.php/webdav'
  suffix='</d:href>'
  prefix=$path$folder

  curl -s -X PROPFIND "https://$domain/remote.php/webdav$folder" -u 'USER:PASSWORD' | xmllint --format - | grep href | awk '{$1=$1};1' | cut -c$((${#prefix}+1))- | rev | cut -c$((${#suffix}+1))- | grep . | rev | while read; do echo -e ${REPLY//%/\\x}; done
}

Utilisez ensuite la fonction list_folder avec en argument le chemin du répertoire (en commençant et terminant avec "/").

En exemple : list_folder / ou list_folder /Photos/

Exemple de Script BASH :


Voici un exemple de script BASH permettant de sauvegarder un site web sur Leviia.

#!/usr/bin/env bash

user='USER'
password='PASSWORD'
today=$(date +%d-%m-%y)
url="https://cloud.leviia.com/remote.php/dav/files/$user"

#BACKUP SQL DATABASE
echo "Start dump database"
mysqldump --single-transaction=TRUE -uroot --all-databases > "/tmp/db-$today".sql
echo "Database dump OK"

#BACKUP WEB FOLDER
echo "Start compress web folder"
tar czf "/tmp/folder-$today".tar.gz /var/www/html/
echo "Web folder compressed"

echo "Sendind database to Leviia"
curl -X PUT "$url/db-$today.sql" -u $user:$password -T "/tmp/db-$today".sql

echo "Sending web folder to Leviia"
curl -X PUT "$url/folder-$today.tar.gz" -u $user:$password -T "/tmp/folder-$today".tar.gz


Envoi sur un lien public :


Il est tout à fait possible d'utiliser Curl pour envoyer des documents via un lien public.

Commencez par créer un lien public de dépose.

Le lien doit être de cette forme : https://cloud.leviia.com/s/56qFXNKDGJn2nHY où 56qFXNKDGJn2nHY est le jeton (token). C'est de ce dernier dont vous aurez besoin.

Pour envoyer des fichiers utilisez :

curl -X PUT "https://cloud.leviia.com//public.php/webdav/DOCUMENT" -u "$TOKEN:$PASSWORD" -T /CHEMIN/VERS/DOCUMENT

Remplacez $TOKEN et $PASSWORD par votre jeton et le mot de passe du partage (laissez le vide s'il n'existe pas de mot de passe).

Mis à jour le : 19/02/2025

Cet article a-t-il répondu à vos questions ?

Partagez vos commentaires

Annuler

Merci !