2017-05-02 7 views
0

Ich arbeitete an einer Web-App, wo eines der Features war, dass sich ein Benutzer in unserem System anmeldet und dann einige Dateien hochlädt. Ich habe mich gefragt, ob ich einen eigenen Dropbox-Account verwenden kann, um diese hochgeladenen Dateien auf organisierte und sichere Weise zu speichern. Ich möchte diese Dateien auch später abrufen, daher muss ich ihre Links zum Zeitpunkt des Uploads in einer separaten Datenbank speichern. Ich arbeite an einer node.js/JavaScript Umgebung mit Ubuntu wenn es darauf ankommt und die App auf Heroku hostet.Kann ich Dropbox API v2 verwenden, um Cloud-Speicher in meiner Web-App zu implementieren?

Ich denke, dass die veraltete Datastore API ähnliche Fähigkeiten hatte, aber gibt es eine Möglichkeit, dies mit der API V2 zu implementieren?

Antwort

0

Die Dropbox-API bietet unter anderem die Möglichkeit, Dateien hoch- und herunterzuladen. Dies sollte also möglich sein. Sie können alles, was Sie mit dem Dropbox API beginnen müssen finden, einschließlich Dokumentation, Tutorials und SDKs hier:

https://www.dropbox.com/developers

Es ist wichtig zu beachten, dass die Dropbox API mit der Absicht entworfen wurde, dass jeder Benutzer würde Verknüpfen Sie ihr eigenes Dropbox-Konto, um mit ihren eigenen Dateien zu interagieren. Es ist jedoch technisch möglich, sich mit nur einem Konto zu verbinden. Die SDKs bieten keine explizite Unterstützung dafür und wir empfehlen dies aus verschiedenen technischen und Sicherheitsgründen nicht. Die meisten dieser Bedenken werden jedoch für serverseitige Apps behoben, bei denen die Zugriffstoken geheim gehalten werden können.

Wenn Sie diese Route verwenden möchten, anstatt den Autorisierungsablauf zu starten, würden Sie manuell ein vorhandenes Zugriffstoken für Ihr Konto und Ihre App verwenden. (Nur vorsichtig sein, es nicht zu widerrufen, zB über https://www.dropbox.com/account/security.)

+0

Da meins eine serverseitige Anwendung sein wird, wie Sie gesagt haben, ist es in Ordnung, es so zu implementieren. Also, ist es richtig, wenn ich mit den folgenden Schritten fortfahre: - 1. Erstellen Sie ein Formular, um Pfad der Datei auf dem PC des Benutzers zu erhalten. ; 2. Senden Sie einen API-Aufruf, um ihn an einem bestimmten Ort in meiner DropBox-Cloud zu speichern. ; 3. Erhalte eine eindeutige ID für die gespeicherte Datei und lege sie in meine separate Datenbank. –

+0

Es ist sicherer für serverseitige Anwendungen, aber es ist nicht die beabsichtigte Verwendung, also kann ich es immer noch nicht empfehlen. Das heißt, was Sie beschreiben, hört sich an, als würde es funktionieren. – Greg

0

Sie können schnell Upload/Download-Datei meines kleinen Dropbox v2 api Wrapper (dropbox-v2-api):

Hochladen Beispiel:

const dropboxUploadStream = dropbox({ 
    resource: 'files/upload', 
    parameters: { 
     path: '/dropbox/path/to/file.js' 
    } 
}, (err, result) => { 
    //upload completed 
}); 

fs.createReadStream('path/to/file.js').pipe(dropboxUploadStream); 

Beispiel herunterladen:

dropbox({ 
    resource: 'files/download', 
    parameters: { 
     path: '/dropbox/image.jpg' 
    } 
}, (err, result) => { 
    //download completed 
}) 
.pipe(fs.createWriteStream('./image.jpg')); 

Beide kombiniert:

const downloadStream = dropbox({ 
    resource: 'files/download', 
    parameters: { path: '/source/file/path' }    
}); 

const uploadStream = dropbox({ 
    resource: 'files/upload', 
    parameters: { path: '/target/file/path' }    
}, (err, response) => { 
    //upload finished 
}); 

downloadStream.pipe(uploadStream); 
Verwandte Themen