我对在我的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