2017-03-06 16 views
0

DropboxのJavaScript API(v2)を使用して、Dropboxからテキストファイルの内容を読み込みたいと思っています。最も近い方法はfilesDownload()です。 「abc」という内容のルートフォルダにtest.txtファイルがあるとします。私のJavaScriptコードは、以下の内容Dropbox API v2 JavaScript読み込みファイル

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

で、次の(私が使用してのWebPACK)のようなオブジェクトが実際に返される

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); 
    }) 

を、見えるだろうが、何のファイルコンテンツ(例えば「ABC」)ではありません返されるオブジェクト代わりに、クロムブラウザのコンソールのネットワークタブを調べると、コンテンツ「abc」を持つURL「https://content.dropboxapi.com/2/files/download」で「ダウンロード」という名前のファイルが表示されます。

私の質問は、実際にファイルの内容をどのように取得できますか? (コンテンツを手に入れることができれば、ウェブページに簡単に表示することができます)

答えて

5

ああ、私はファイルの内容を取得する方法を理解しています。 返されるオブジェクトは、実際にfileBlobオブジェクト

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

が含まれておりますが、コンテンツを取得するには、ブラウザのFileReaderを使用することができます。完全なコードは次のようになります

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) { 
     ... 
    }) 
関連する問題