2014-03-28 37 views
3

我計劃使用基於雲的存儲服務來存儲我的Web應用的一些靜態用戶上傳內容。我現在已經決定了Google雲端存儲。Google雲端存儲 - Rails網絡應用 - 針對不同環境的不同存儲桶和不同訪問密鑰

我的網絡應用程序是Rails,我使用Paperclipfog連接到Google雲端存儲。

據我所知,我需要使用fog配置中的Interoperable Storage Access Keys連接到我的存儲桶。我添加的任何其他密鑰都可以訪問所有的存儲桶。

我想在每個環境中有一個單獨的存儲桶(development,stagingproduction)。我想單獨使用access and secret keys,每個密鑰只能訪問一個存儲桶。

基本上,我不想將我的生產密鑰放入我的所有開發人員都可以訪問的web應用程序源代碼中。

我閱讀了關於ACL的Google Cloud Storage文檔,但我無法找到如何實現我想要的內容。

我無法想象其他人不會有同樣的要求。也許我使用了錯誤的搜索條件,但是我無法獲得關於此的任何信息。

我將不勝感激。

P.S. - 我想在AWS S3上實現嗎?如果可以的話,我很樂意切換到S3。

+0

我不確定我是否明白問題所在。什麼阻止你有不同的密鑰和桶名配置文件取決於你的環境? – jterrace

+1

@jterrace - 你在哪裏創建密鑰,並準確地將每個密鑰分配給一個桶? – Anjan

+0

任何你不想使用[google-api-ruby-client](https://github.com/google/google-api-ruby-client)而不是霧的理由?有了這個,你可以使用服務帳戶。 – jterrace

回答

2

這樣的常規解決方案將有3個服務帳戶(開發應用程序,staging-app,production-app),每個帳戶都有自己的一組憑據和權限。您可以進行測試,分段和生產項目,也可以在單個項目中包含測試,暫存和生產桶。您可以創建一系列的每個項目服務帳戶,每個帳戶都有自己的一組憑據和權限。

不幸的是,可互操作的存儲訪問密鑰不適用於服務帳戶,只有普通的Google用戶帳戶。爲了做你想做的事,你需要有三個用戶帳戶,每個用戶帳戶都被准許訪問這些桶中的一個。

+0

澄清:你的意思是我應該使用3個Google帳戶(例如:3個不同的Gmail地址),在每個帳戶上註冊Cloud Storage,在每個帳戶上創建相關的「環境」項目......?換句話說,只需在Google帳戶級別完全隔離每個環境? – Anjan

+0

不幸的是,這幾乎是你需要做的,是的。 –

+0

或者,您可以使用不需要可互操作的訪問密鑰的庫,如提到的google-api-ruby-client jterrace。 –

相關問題