Donnerstag, 21. August 2014

Zugriff auf die Dropbox mit dem RaspberryPi

Anbei ein Hinweis auf die schöne Site von alex. Von dort ist auch dieser Tipp. Das Wichtigste habe ich hier übernommen und auf Deutsch übersetzt. Ich will mich ja nicht mit fremden Federn schmücken.

Als erstes benötigt man einen Dropbox-Account. 
- Den gibt es hier.

Dann kommt die Software von Andrea Fabrizi auf den Pi.
- Entweder direkt von GitHub, da findet Ihr auch eine ausführliche Anleitung,
- oder von der Linux-Ebene des Pi aus:
     cd ~
     git clone https://github.com/andreafabrizi/Dropbox-Uploader.git

Die Befehlszeile einfach markieren, mit <strg>+c kopieren und in der Terminalsitzung mit der rechten Maustaste klicken. Dann muss diese nicht abgetippt werden.

Dann in das neu erstellte Verzeichnis wechseln:
     cd Dropbox-Uploader

Nun muss auf der Dropbox eine APP installiert werden:
- Auf der Dropbox einloggen und dann diese Seite aufrufen: https://www.dropbox.com/developers/apps
- Dann "Create app" drücken:
- “Dropbox API app” auswählen,
- App mit “Files and datastores” definieren
- Als nächstes geht es um die Zugriffsrechte: "No" gibt vollen Zugriff auf die Dropbox.
- "All file types" gibt Zugriff auf alle Dateitypen.
-  Der App eine Namen geben und noch mal "Create app" drücken:
- Jetzt auf dem Pi ./dropbox_uploader.sh starten
- Das Programm fragt nun nach dem "App key:" und dem "App secret:". Beides von der inzwischen geöffneten Internetseite kopieren.
- Zugriffsrechte auswählen: "f" für Vollzugriff.
- Noch mal checken und mit "y" bestätigen.
- Es wird nun ein Token zur Identifikation angefordert. Dieses im Browser eingeben und "zulassen" drücken.
Hierzu die Zeile in der Terminalsitzung markieren, mit linker Maustaste kopieren und dann mit <strg>-v einfügen.
- Zum Schluss noch mal in der Terminalsitzung bestätigen.

Ausführen:
     /home/pi/Dropbox-Uploader/dropbox_uploader.sh upload /home/pi/dateiname dateiname
Lädt die Datei "dateiname" in das Root-Verzeichnis der Dropbox. Klappt auch mit dort eingerichteten Ordnern.

Oder als Programm in Python:

#!/usr/bin/env python3

from os import system

prog = "/home/pi/Dropbox-Uploader/dropbox_uploader.sh "
  # Pfad und Programmname
befehl = "upload"
  # Befehl an das Programm
von =  "/home/pi/blog.py"
  # Pfad und Dateiname auf dem Pi
nach = "blog.py"
  # Pfad und Dateiname auf der Dropbox

system(prog + befehl + " " + von + " " + nach)
  # Führt den Befehl auf der Systemebene aus

Weitere Befehle:
download, move, copy, mkdir ... mehr gibt es auf GitHub.

Kommentare:

  1. Hallo, ich erhalte die Meldung:
    Uploading "/home/pi/dropbox/Dropbox-Uploader/aha" to "/aha"... FAILED
    An error occurred requesting /upload

    Wsa kann ich tun?

    AntwortenLöschen
    Antworten
    1. Welche Version hast du installiert? “On September 28, 2017, API v1 will be turned off, so it's time to move to API v2.” Die App wird in der Version v1 nicht mehr unterstützt. Der Syntax hat sich geändert. Mit dem Update habe ich mich noch nicht beschäftigt, sodass ich hierzu leider noch nichts sagen kann. Sorry.

      Löschen
  2. Danke für die Antwort. Eddi
    Im CHANGELOG steht:
    ## Version 1.0 - 10 Aug 2016
    * Add search option
    * Increase chunk size to 50MB for better performance
    * Add testUnit script
    * Upgrade to API v2
    In der dropShell.sh steht:
    API_CHUNKED_UPLOAD_APPEND_URL="https://content.dropboxapi.com/2/files/upload_session/append_v2"
    Im README steht:
    ## Features

    * Cross platform
    * Support for the official Dropbox API v2
    In der Datei dropbox_uploader.sh steht:
    #Checking if it's still a v1 API configuration file
    echo -ne "The config file contains the old deprecated v1 oauth tokens.\n"

    API_CHUNKED_UPLOAD_APPEND_URL="https://content.dropboxapi.com/2/files/upload_session/append_v2"

    Daher nehme ich an, dass es die v2 API ist.
    Anmerkung: Ich bin noch nicht sehr firm in Linux.

    AntwortenLöschen