Доступ к файлам в Dropbox с NodeJS - PullRequest
2 голосов
/ 13 июня 2019

Я использую Dropbox API с Node JS.Мне удалось загрузить файлы в свой Dropbox с помощью HTTP-запросов, но я не могу загрузить их с ним.Я намерен использовать HTTP-запрос для просмотра содержимого файла в раскрывающемся списке.

Это код для загрузки файлов:

var request = require('request')
var fs = require('fs')

var token = "XXXXXXXXXXXXXXXXX"
var filename = "path/to/file/file.txt"

var content = fs.readFileSync(filename)

options = {
            method: "POST",
            url: 'https://content.dropboxapi.com/2/files/upload',
            headers: {
              "Content-Type": "application/octet-stream",
              "Authorization": "Bearer " + token,
              "Dropbox-API-Arg": "{\"path\": \"/files/"+filename+"\",\"mode\": \"overwrite\",\"autorename\": true,\"mute\": false}",
            },
            body:content
};

request(options,function(err, res,body){
     console.log("Err : " + err);
     console.log("res : " + res);
     console.log("body : " + body);    
 })

Теперь, какой должна быть функция запроса для загрузки этогофайл?Я пытался что-то вроде этого:

var request = require('request')
var fs = require('fs')

var token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
var filename = "path/to/file/file.txt"

var content = fs.readFileSync(filename)

options = {
            method: "GET",
            url: 'https://content.dropboxapi.com/2/files/upload',
            headers: {
              "Content-Type": "application/octet-stream",
              "Authorization": "Bearer " + token,
              "Dropbox-API-Arg": "{\"path\": \"/files/"+filename+"\",\"mode\": \"overwrite\",\"autorename\": true,\"mute\": false}",
            },

};

request(options,function(err, res){
     console.log("Err : " + err);
     console.log("res : " + res);

 })

Но Res просто дает object Object

Как мне скачать файл?

1 Ответ

1 голос
/ 13 июня 2019

Вам не удалось загрузить файл, поскольку используемый URL-адрес (https://content.dropboxapi.com/2/files/upload) неверен.Согласно Dropbox API-документу правильная конечная точка URL-адреса:

https://content.dropboxapi.com/2/files/download

Однако лучше использовать модуль npm, например dropbox реализовать требование, так как оно уже обернуто логикой.Код будет выглядеть так:

var fetch = require('isomorphic-fetch');
var Dropbox = require('dropbox').Dropbox;
var dbx = new Dropbox({ accessToken: 'YOUR_ACCESS_TOKEN_HERE', fetch: fetch });
dbx.filesDownload({path: '...'})
.then(function(data) {
  ...
});
...