2013-04-13 20 views
1

我使用Node.js來託管Web服務器。服務器將與不同的第三方存儲提供商進行通信,例如Box,Dropbox,Googledrive,amazon s3,skydrive,ftp服務器等。服務器將從存儲提供商處下載文件或將文件上傳到存儲提供商。尋找node.js模塊爲不同的存儲提供者提供統一的文件API

我使用OAuth模塊實施授權過程並獲取auth_token和auth_secret。 OAuth模塊統一了不同服務器的授權接口。 OAuth模塊封裝了oauth服務器的API,並提供了統一和友好的界面。使用OAuth模塊,我不需要在代碼中調用oauth服務器的API。這是相當不錯的,並節省了我的工作很多。

當從/向不同存儲提供者下載/上傳文件時遇到一些困難。我必須爲每個存儲服務器編寫不同的實現。例如調用APi將文件上傳到盒子,調用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

你應該看看Temboo - 它確實你在尋找什麼。 Temboo對API進行規範化處理,使它們看起來和感覺都一樣。一旦你知道如何通過Temboo與單個存儲API交談,你就可以與所有人交談。

Temboo有一個Node.js SDK,您可以瞭解有關Temboo支持的存儲API的更多信息here。 (完全披露:我在泰布工作)

相關問題