gpt4 book ai didi

javascript - 通过 Dropbox Api V2 上传文件

转载 作者:行者123 更新时间:2023-11-29 15:18:24 25 4
gpt4 key购买 nike

以前,我在我的网络应用程序中使用 Dropbox API V1 将文件上传到我的保管箱帐户。请注意,该应用仅使用一个保管箱帐户(我的)来上传文件。

所以以前:

  1. 我在 Dropbox 开发者控制台上创建了一个应用
  2. 从开发者控制台生成了我的 token
  3. 将该 token 硬编码到我的服务器中,以将所有文件上传到我的 Dropbox 中的特定文件夹。

这之前工作得很好,但由于 dropbox API v1 已被弃用,它不再工作了。

Dropbox V1 代码:

function fileupload(content) {
request.put('https://api-content.dropbox.com/1/files_put/auto/my_reports/report.pdf', {
headers: {
Authorization: 'TOKEN HERE',
'Content-Type': 'application/pdf'
},
body: content
}, function optionalCallback(err, httpResponse, bodymsg) {
if (err) {
console.log(err);
}
else {
console.log("File uploaded to dropbox successfully!");
fs.unlink(temp_dir + 'report.pdf', function(err) {
if (err)
throw err;
else {
console.log("file deleted from server!");
}
})
request.post('https://api.dropboxapi.com/1/shares/auto/MY_reports/report.pdf' + '?short_url=false', {
headers: {
Authorization: 'TOKEN HERE'
}
}, function optionalCallback(err, httpResponse, bodymsg) {
if (err) {
console.log(err);
}
else {
console.log('Shared link 2 ' + JSON.parse(httpResponse.body).url);

}
});

}
});
}

Dropbox V2 代码:

function fileupload(content) {
request.post('https://content.dropboxapi.com/2/files/upload/my_reports', {
headers: {
Authorization: 'TOKEN HERE',
'Content-Type': 'application/pdf'
},
body: content
} ......... (rest of the code is similar to above)

问题:

我试过的都不行。我似乎无法从我的应用程序中将文件上传到我的保管箱帐户。 我已尝试从 Dropbox 应用程序控制台重新生成我的 token ,但没有成功。

谁能告诉我我做错了什么?

更新:

我将我的代码更新为与 API v2 类似的结构,但仍然无法解决它。

 request.post('https://content.dropboxapi.com/2/files/upload/', {
headers: {
Authorization: 'Bearer TOKEN',
'Dropbox-API-Arg': {"path": "/Homework","mode": "add","autorename": true,"mute": false},
'Content-Type': 'application/pdf'
//'Content-Type': 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
},
body: content
} .... similar code

最佳答案

我鼓励您使用现有的 nodejs dropbox 包,它隐藏了身份验证过程等的抽象。

查看官方dropbox-sdk-js或者试试我的小包裹dropbox-v2-api .快速示例:

const dropboxV2Api = require('dropbox-v2-api');

//create session
const dropbox = dropboxV2Api.authenticate({
token: 'TOKEN HERE'
});

//create upload stream
const uploadStream = dropbox({
resource: 'files/upload',
parameters: {
path: '/dropbox/path/to/file.txt'
}
}, (err, result) => {
// upload completed
});

//use nodejs stream
fs.createReadStream('path/to/file.txt').pipe(uploadStream);

关于javascript - 通过 Dropbox Api V2 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46494247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com