ユーザーがファイルストレージの制限を与えるためにどのように?
-
19-09-2019 - |
質問
私は今、Webアプリケーションに取り組んでレールを使用して、誰でもファイルストレージの制限を追跡するための良い方法を知っていたかどうかを確認したかったんですか?私たちは、ユーザーが、彼らはファイルをアップロードするために使用することができ、部屋の特定の量を与えたいと、私たちは、Amazon S3上のストレージのためのペーパークリップを使用しています。何かご意見は?おかげ
解決
あなたがクリップで使用できるオプションの列の
一つは、あなたが
のようにまとめることができますOBJECT_file_sizeです# Assuming a user has many files relationship
@user.uploads.sum(:image_file_size)
実際にキャップを課すことにしたように、私はあなたが戻ってクライアントにエラーや問題を渡すことができるように、ファイルモデルが何であれにカスタム検証を作成することをお勧めしたいです。
他のヒント
ペーパークリップは、ファイルサイズを格納します。
だから、あなただけの、一人のユーザのために、のような何かを行うことができます:
def used_file_size
self.files.sum(:document_file_size)
end
これで、すべてのユーザーのドキュメントの合計サイズを持っています。
ユーザーがそのサイズに達した場合には、ドキュメントのアップロードを検証する最大サイズの制限を追加していないことができます。
所属していません StackOverflow