寻找node.js模块为不同的存储提供者提供统一的文件API

我使用Node.js来托pipe一个Web服务器。 服务器将与不同的第三方存储提供商进行通信,例如Box,Dropbox,Googledrive,amazon s3,skydrive,ftp服务器等。服务器将从文件下载或上传文件到存储提供商。

我正在使用OAuth模块来实施授权过程并获得auth_token和auth_secret。 OAuth模块统一了不同服务器的授权界面。 OAuth模块封装了oauth服务器的API,并提供了统一和友好的界面。 使用OAuth模块,我不需要在代码中调用oauth服务器的API。 这是相当不错的,并节省了我的工作很多。

从不同的存储提供商下载/上传文件时遇到一些困难。 我必须为每个存储服务器编写不同的实现。 比如调用APi把file upload到盒子,调用s3 API把file upload到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); 

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

谢谢,

杰弗里

你应该看看Temboo – 这正是你正在寻找的东西。 Temboo对API进行了规范化处理,使它们看起来和感觉都一样。 一旦您知道如何通过Temboo与单个存储API交谈,您就知道要与所有人交谈。

Temboo有一个Node.js SDK,您可以在这里find关于Temboo支持的存储API的更多信息。

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