Как предоставить пользователям ограничение на хранение файлов?
-
19-09-2019 - |
Вопрос
Сейчас я работаю над веб-приложением, используя Rails, и хотел узнать, знает ли кто-нибудь хороший способ отслеживать ограничения на хранилище файлов?Мы хотим предоставить пользователям определенное пространство, которое они смогут использовать для загрузки файлов, и используем скрепку для хранения на 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
После этого вы получите общий размер документов каждого пользователя.
Затем вы можете добавить ограничение максимального размера и не проверять загрузку документа, если пользователь достиг этого размера.