使用JavaScript从Dropbox位置读取Discord上的文件

问题描述

我目前正在努力使discord机器人连接到DropBox内的目录,我正在使用discord.js和DropBox JavaScript SDK,并且已完成以下操作:

module.exports = {
  name: "dropBox",description: "Commands for interacting with a dropBox folder",execute(message,args) {
    var iso = require("isomorphic-fetch");
    var DropBox = require("dropBox").DropBox;
    var dbx = new DropBox({ accesstoken: "ACCESS_TOKEN",fetch: iso });
    dbx
      .filesListFolder({ path: "" })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
    dbx
      .filesDownload({ path: "/test.json" })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
  },};

我得到以下响应数据:

{
  name: 'test.json',path_lower: '/test.json',path_display: '/test.json',id: 'id:rXD9HpHY8HAAAAAAAAAOEw',client_modified: '2020-08-24T20:29:51Z',server_modified: '2020-08-24T20:29:51Z',rev: '015ada572d4487c00000001e8da14d0',size: 45,is_downloadable: true,content_hash: '8864f0de005b2729263a68f88c1f2201049c0a37e5d4f033b3821d590d3a9f71',fileBinary: <Buffer 7b 0d 0a 20 20 22 76 61 6c 75 65 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 4a 53 4f 4e 20 66 69 6c 65 22 0d 0a 7d 0d 0a>
}

但是我不确定如何处理这些数据,我是否需要将内容哈希转换回json文件?还是我需要使用Node.js文件流媒体(fs)来访问它?当我可以改用API时,或者使用另一种方式读取需要下载软件包的文件时,我觉得这会打败使用DropBox SDK的目的?

很抱歉,如果这不是我无法得到的明显解决方案,我找不到有关如何进行的明确信息,我们将不胜感激。

解决方法

The Dropbox API JavaScript SDK为您完成与Dropbox API服务器通信的工作。如果使用filesDownload从Node中的Dropbox SDK下载文件,则会在fileBinary字段中为您提供生成的文件数据。您可以像从this example中那样从Buffer中读出数据。

content_hash字段是文件数据的“哈希”,而不是文件数据本身。您可以找到有关该here的信息。)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...