Как дать пользователям лимит хранилища файлов? - PullRequest
7 голосов
/ 10 ноября 2009

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

Ответы [ 2 ]

7 голосов
/ 10 ноября 2009

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

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

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

6 голосов
/ 10 ноября 2009

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

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

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

...