【问题标题】:How to use multiple S3 accounts with Paperclip and Rails如何在 Paperclip 和 Rails 中使用多个 S3 帐户
【发布时间】:2010-12-25 09:41:50
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails amazon-s3 paperclip


    【解决方案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) : creds

    然后您可以执行类似的操作(只要您的模型属于_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)
    

    【讨论】:

    • 谢谢!这就是我需要的!
    【解决方案2】:

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

    【讨论】:

    • 因为在这个项目中,每个用户都要为自己的 S3 账单负责,即使他们不再使用该服务,也需要访问他们的文件。
    • 有些对象是公共的,有些对象是私有的。我们需要多个 s3s
    猜你喜欢
    • 2013-01-12
    • 2012-12-30
    • 2011-07-14
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多