Как дать пользователям ограничение на хранение файлов?

Я работаю над веб-приложением прямо сейчас, используя Rails, и хотел узнать, знает ли кто-нибудь хороший способ отслеживать ограничения на хранилище файлов? Мы хотим предоставить пользователям определенное пространство, которое они могут использовать для загрузки файлов, и мы используем скрепку для хранения на Amazon S3. Есть предположения? Спасибо


person CalebHC    schedule 10.11.2009    source источник


Ответы (2)


Одним из необязательных столбцов, которые вы можете использовать со скрепкой, является OBJECT_file_size, который вы можете суммировать следующим образом:

# Assuming a user has many files relationship
@user.uploads.sum(:image_file_size)

Что касается фактического наложения ограничения, я бы рекомендовал создать пользовательскую проверку для любой файловой модели, чтобы вы могли передавать ошибки и проблемы обратно клиенту.

person Mike Buckbee    schedule 10.11.2009

Paperclip сохраняет размер файла.
Таким образом, вы можете просто для одного пользователя сделать что-то вроде:

def used_file_size
    self.files.sum(:document_file_size)
end

После этого у вас будет общий размер документов каждого пользователя.
Затем вы можете добавить ограничение на максимальный размер и не проверять загрузку документа, если пользователь достиг этого размера.

person Damien MATHIEU    schedule 10.11.2009