我可以使用Dropbox API v2在我的网络应用中实施云存储吗?

时间:2017-05-02 19:20:52

标签: node.js database heroku dropbox-api dropbox-js

我正在开发一个网络应用程序,其中一个功能是用户登录我们的系统,然后上传一些文件。我想知道是否有一种方法可以使用我自己的Dropbox帐户以有组织和安全的方式存储这些上传的文件。我还想稍后检索这些文件,因此我需要在上传完成时将其链接存储在单独的数据库中。 我正在使用Ubuntu在node.js / JavaScript环境中工作,如果这很重要并在Heroku上托管应用程序。

我认为已弃用的Datastore API具有类似的功能,但有没有办法通过API V2实现这一功能?

2 个答案:

答案 0 :(得分:0)

Dropbox API确实能够上传和下载文件以及其他操作,因此这当然是可行的。您可以在此处找到开始使用Dropbox API所需的一切,包括文档,教程和SDK:

https://www.dropbox.com/developers

值得注意的是,Dropbox API的设计目的是让每个用户都链接自己的Dropbox帐户,以便与自己的文件进行交互。但是,技术上可以连接到一个帐户。 SDK不提供明确的支持,出于各种技术和安全原因,我们不建议这样做。尽管如此,大多数这些问题都会在服务器端应用程序中得到缓解,其中访问令牌可以保密。

如果您确实想要使用此路线,则可以手动为您的帐户和应用使用现有的访问令牌,而不是启动授权流程。 (请注意不要撤销它,例如通过https://www.dropbox.com/account/security。)

答案 1 :(得分:0)

您可以使用我的小型Dropbox v2 api包装器(dropbox-v2-api)快速上传/下载文件:

上传示例:

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

fs.createReadStream('path/to/file.js').pipe(dropboxUploadStream);

下载示例:

dropbox({
    resource: 'files/download',
    parameters: {
        path: '/dropbox/image.jpg'
    }
}, (err, result) => {
    //download completed
})
.pipe(fs.createWriteStream('./image.jpg'));

两者合并:

const downloadStream = dropbox({
    resource: 'files/download',
    parameters: { path: '/source/file/path' }               
});

const uploadStream = dropbox({
    resource: 'files/upload',
    parameters: { path: '/target/file/path' }               
}, (err, response) => {
    //upload finished
});

downloadStream.pipe(uploadStream);