簡體   English   中英

Dropbox API v2 JavaScript讀取文件

[英]Dropbox API v2 JavaScript read file

我想使用Dropbox的JavaScript API(v2)從Dropbox讀取文本文件的內容,據我所知,最接近的方法是filesDownload() 假設我們在根文件夾中有一個test.txt文件,內容為'abc'。 我的JavaScript代碼如下所示(我使用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);
    })

實際返回一個對象,其中包含以下內容

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

但是返回的對象中沒有文件內容(例如“abc”)。 相反,當我檢查chrome瀏覽器控制台的網絡選項卡時,我可以看到名為“download”的文件,其URL為“ https://content.dropboxapi.com/2/files/download ”,其內容為“abc” 。

我的問題是,我怎樣才能真正獲得文件的內容? (一旦我可以獲得內容,那么很容易在網頁上顯示它們)

哦,我弄清楚如何獲取文件的內容。 返回的對象實際上包含一個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) {
        ...
    })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM