web-dev-qa-db-fra.com

Télécharger un fichier sous Linux (CLI) vers Dropbox (via bash / sh)?

Je dois enregistrer (et écraser ) un fichier via le cron (toutes les heures) sur mon compte dropbox. Le fichier doit être stocké dans un emplacement prédéfini (qui est partagé avec d'autres utilisateurs).

J'ai vu la possibilité de créer un Dropbox App, mais qui crée son propre dossier dropbox.

A également regardé Dropbox Saver mais cela semble pour les navigateurs.

Je pensais (en espérant) quelque chose super léger, un long les lignes de CURL, donc je n'ai pas besoin d'installer de bibliothèques. Un simple script sh serait génial. J'ai seulement besoin de METTRE le fichier (écraser), pas besoin de le lire (OBTENIR).

J'allais à travers la boîte de dépôt documentation API du développeur , mais en quelque sorte perdu.

Quelqu'un un bon indice?

19
Roger

Tout d'abord, puisque vous devez accéder à un dossier partagé existant, enregistrez une application "Dropbox API" avec un accès "Full Dropbox":

https://www.dropbox.com/developers/apps/create

Ensuite, obtenez un jeton d'accès pour votre compte pour votre application. Le moyen le plus simple consiste à utiliser le bouton "Générer" sur la page de votre application, où vous serez envoyé après avoir créé l'application. Il est également accessible via App Console .

Ensuite, vous pouvez télécharger vers un chemin spécifié via curl comme indiqué dans cet exemple:

Cela télécharge un fichier à partir du chemin local matrices.txt dans le dossier actuel vers /Homework/math/Matrices.txt dans le compte Dropbox et renvoie les métadonnées du fichier téléchargé:

echo "some content here" > matrices.txt

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer <ACCESS_TOKEN>" \
    --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\"}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @matrices.txt

<ACCESS_TOKEN> doit être remplacé par le jeton d'accès OAuth 2.

26
Greg