3

I'm using paperclip to send files to S3, and i want to know how much space each user is consuming.

For each user i have a folder user/:id/files/.

I can register in my database how much space costs each file when i save it, but i prefere to check it directly at S3, there is an easy way?

4

2 に答える 2

3

これが簡単かどうかはわかりませんが、ドキュメントからこれを行っていることに注意してください...

Paperclip は aws-sdk を使用するため、次のように直接使用する場合:

size = 0

AWS::S3::Bucket.objects.each do |object| #object should be an S3Object
  if object.metadata(name) =~ /user//:id//files/
    size += object.content_length #in bytes
  end
end

各ユーザーが使用する合計バイト数を取得する必要があります。私が確信していないのはname、オブジェクト/ファイルのメタデータの形式だけです。この投稿によると、名前には/user/:id/files/フォーマットが必要ですが、他のアイテム (例: user) がそれにどのように対応するかはわかりません。

少し掘り下げると、おそらくそれを改善できますが、一般的なアイデアはそこにあると思います。

これらのリンクからこれを取得しました:

AWSRubySDK

バケツ

バケット オブジェクト

S3オブジェクト

S3Object.metadata

S3Object.metadata(名前)

S3Object.content_length

于 2012-07-08T10:42:04.207 に答える