4

Railsアプリでペーパークリップを使用し、添付ファイルを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に1行追加するだけです。

creds = creds.is_a?(Proc)?creds.call(self):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)
于 2011-02-03T15:27:41.013 に答える
0

S3 アカウントを 1 つだけ使用して、ユーザーごとにフォルダー (バケット) を作成してみませんか。

于 2009-12-10T22:07:14.010 に答える