4

我非常熟悉在我的 Rails 应用程序中使用 Paperclip 并将附件存储在 S3 上。

但是,在我的下一个项目中,我希望每个用户都使用自己的 S3 帐户。假设我使用的是 restful_authentication 或 authlogic,那么存储每个用户的凭据并让 Paperclip 使用它们的最佳方式是什么?

4

2 回答 2

1

我有同样的问题,所以我写了一个基本的插件,它将扩展 Paperclip 以允许多个 S3 帐户。它允许您为 s3_credentials 选项传递 Proc,而不仅仅是散列或文件。Proc 必须返回一个哈希值或一个文件。

https://github.com/leklund/paperclip_multiple_s3_accounts

它所做的只是在 parse_credentials 中添加一行:

creds = creds.is_a?(Proc) ? creds.call(self) : 信用

然后你可以做类似的事情(只要你的模型属于_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)
于 2011-02-03T15:27:41.013 回答
0

为什么不只使用一个 S3 帐户并为每个用户创建一个文件夹(存储桶)。

于 2009-12-10T22:07:14.010 回答