我使用 Node.js 来托管 Web 服务器。服务器将与不同的第三方存储提供商进行通信,例如 Box、dropbox、googledrive、amazon s3、skydrive、ftp 服务器等。服务器将从存储提供商下载文件或将文件上传到存储提供商。
我正在使用 OAuth 模块来实现授权过程并获取 auth_token 和 auth_secret。OAuth 模块统一了不同服务器的授权接口。OAuth 模块封装了 oauth 服务器的 API,提供了统一友好的接口。使用 OAuth 模块,我不需要在我的代码中调用 oauth 服务器的 API。它非常好,节省了我的很多工作。
从/向不同的存储提供商下载/上传文件时,我遇到了一些困难。我必须为每个存储服务器编写不同的实现。比如调用box APi上传文件到box,调用s3 API上传文件到s3等等。我想知道是否有一些节点模块封装了存储提供者的所有API,就像授权API的OAuth模块一样.
下面的伪代码表达了我期望这种模块如何工作。我想它的名字是“存储”。
var storage = require("storage"); // This is the storage library I'm looking for.
var s3 = storage.s3(s3_aouth_token_and_secret); // The declaration for the s3_aouth_token_and_secret is omitted for simplification.
var box = storage.box(box_aouth_token_and_secret);
var dropbox = storage.dropbox(dropbox_aouth_token_and_secret);
var local_file_name = "./report.docx";
s3.upload(s3_parent_folder_id, local_file_name); // Upload local file to s3
box.upload(box_parent_folder_id, local_file_name); // Upload local file to box
dropbox.upload(dropbox_parent_folder_id, local_file_name); // Upload local file to dropbox
var local_pah = "./downloads/';
s3.download(s3_file_id, local_pah);
box.download(box_file_id, local_pah);
dropbox.download(dropbox_file_id, local_pah);
请让我知道哪个节点模块可以满足我的要求。
谢谢,
杰弗里