之前我在我的网站应用程序中使用了Dropbox API V1来上传文件到我的Dropbox账户。请注意,该应用程序仅使用一个Dropbox账户(即我的账户)来上传文件。
所以以前:
- 我在Dropbox开发者控制台上创建了一个应用程序
- 从开发者控制台生成了我的令牌
- 将该令牌硬编码到我的服务器中,以将所有文件上传到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帐户中。 我已经尝试从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
body: 'Unknown API function: "files/upload/".'
响应包含更多数据。 - Skywalker