1

我使用 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);

请让我知道哪个节点模块可以满足我的要求。

谢谢,

杰弗里

4

1 回答 1

4

您应该查看Temboo - 它完全符合您的要求。Temboo 对 API 进行规范化,以便它们的外观和感觉都相同。一旦您知道如何通过 Temboo 与单个存储 API 对话,您就知道如何与所有人对话。

Temboo 有一个 Node.js SDK,您可以在此处找到有关 Temboo 支持的存储 API 的更多信息。

(全面披露:我在 Temboo 工作)

于 2013-04-16T22:06:32.183 回答