2017-03-06 31 views
0

Ich würde gerne Dropbox JavaScript API (v2) verwenden, um den Inhalt einer Textdatei von Dropbox zu lesen, von dem, was ich weiß, ist die nächste Methode filesDownload(). Angenommen, wir haben eine test.txt-Datei im Stammordner mit dem Inhalt 'abc'. mein JavaScript-Code würde wie folgt aussehen (ich benutze webpack)Dropbox API v2 JavaScript lesen

var Dropbox = require('dropbox'); 
var dbx = new Dropbox({accessToken: '...'}); 

dbx.filesDownload({path: '/test.txt'}) 
    .then(function (response) { 
     console.log(response); 
    }) 
    .catch(function (error) { 
     console.log(error); 
    }) 

ein Objekt tatsächlich zurückgegeben wird, mit folgendem Inhalt

Object { 
    client_modified: "2017-03-06T06:34:24Z" 
    content_hash: "f62f4917741f7ed26e883d8193ddf477cde87b99dfbd8d5d8f67eb400087e0b6" 
    ... 
} 

aber es gibt keinen Dateiinhalt (zB „abc“) in das zurückgegebene Objekt Wenn ich die Netzwerkregisterkarte der Chrome-Browserkonsole betrachte, kann ich stattdessen die Datei "download" mit der URL "https://content.dropboxapi.com/2/files/download" sehen, die den Inhalt "abc" hat.

Meine Frage ist, wie kann ich tatsächlich den Inhalt der Datei bekommen? (Sobald ich den Inhalt bekommen kann, dann ist es einfach, sie auf der Webseite zu zeigen)

Antwort

5

oh, ich finde heraus, wie man den Inhalt der Datei bekommt. das zurückgegebene Objekt enthält tatsächlich ein fileBlob Objekt

Object 
    client_modified: "2017-03-06T06:34:24Z" 
    .... 
    fileBlob: Blob 
     size: 5 
     type: "application/octet-stream" 
     __proto__: Blob 
      ... 

und Sie können Browser-Filereader verwenden, um die Inhalte zu bekommen. Der vollständige Code würde also wie folgt aussehen:

var Dropbox = require('dropbox'); 
var dbx = new Dropbox({accessToken: '...'}); 

dbx.filesDownload({path: '/test.txt'}) 
    .then(function (response) { 
     var blob = response.fileBlob; 
     var reader = new FileReader(); 
     reader.addEventListener("loadend", function() { 
      console.log(reader.result); // will print out file content 
     }); 
     reader.readAsText(blob); 
    }) 
    .catch(function (error) { 
     ... 
    }) 
Verwandte Themen