Ограничение размера файлов пользовательских папок

Я занимаюсь разработкой файлового хостинга, где пользователи могут загружать файлы в свою папку. Эта папка может иметь квоту всего 100 Мб. Я хотел бы реализовать систему, в соответствии с которой, если пользователь попытается загрузить файл в свою папку, которая уже заполнена до 100 МБ, и превысит свою квоту, система не разрешит это и отобразит сообщение пользователю.

Есть идеи

Спасибо

р

1 ответ

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

Это означает либо отслеживание размеров файлов при их загрузке, например, строки в таблице базы данных, и в этом случае возникает вопрос "сколько они уже используют?" можно ответить одним запросом. В качестве альтернативы вы можете решить это каждый раз, когда кто-то пытается загрузить файл, находя все файлы, которыми они владеют (предположительно, из таблицы БД?) И вызывая stat() или аналогично запросу размера каждого файла.

Как только вы узнаете, сколько они уже используют POST-запрос или каким-либо другим способом, который вы используете для загрузки, вам сообщат размер входящей загрузки.

Будьте осторожны с размером - размер файла часто не совпадает с размером на диске. Что важнее?

Другие вопросы по тегам