我對在我的Rails應用程序中使用Paperclip並在S3上存儲附件非常熟悉。如何在Paperclip和Rails中使用多個S3帳戶
但是,在我的下一個項目中,我希望每個用戶使用自己的S3帳戶。假設我正在使用restful_authentication或authlogic,那麼存儲每個用戶憑證並讓Paperclip使用它們的最佳方法是什麼?
我對在我的Rails應用程序中使用Paperclip並在S3上存儲附件非常熟悉。如何在Paperclip和Rails中使用多個S3帳戶
但是,在我的下一個項目中,我希望每個用戶使用自己的S3帳戶。假設我正在使用restful_authentication或authlogic,那麼存儲每個用戶憑證並讓Paperclip使用它們的最佳方法是什麼?
爲什麼不使用一個S3帳戶併爲每個用戶創建一個文件夾(桶)。
我有同樣的問題,所以我寫了一個基本的插件,將擴展回形針允許多個S3帳戶。它可以讓你爲s3_credentials選項傳遞一個Proc,而不僅僅是一個散列或文件。 Proc必須返回一個散列或文件。
https://github.com/leklund/paperclip_multiple_s3_accounts
它所做的是添加一個行到parse_credentials:
creds = creds.is_a(PROC)? creds.call(個體經營):creds
,然後你可以這樣做(只要你的模型belongs_to的:s3bucket):
has_attached_file :s3_credentials => (lambda do |attachment|
h = {
'bucket' => attachment.instance.s3bucket.name,
'access_key_id' => attachment.instance.s3bucket.access_key_id,
'secret_access_key' => attachment.instance.s3bucket.secret_access_key
}
end)
謝謝!這是我需要的! – Mischa 2011-06-25 08:18:24
因爲,在這個項目中,每一位用戶負責的擁有S3賬單,即使他們不再使用該服務,也需要訪問他們的文件。 – Callmeed 2009-12-10 22:18:23