Отслеживание файлов в посте / странице / комментарии

serglt

Анус, ой, Ахтунг
Всем доброго вермени суток.

Хотел бы поговорить о такой вещи как контроль файлов на сервере.
Имеем сайт, на этом сайте можно добавлять фотографии/файлы, в новости, коментарии, и т. д.
Фотографии грузятся на сервер, причем грузить их могут и админ и обычный пользователь, и гость к примеру пишущий комментарий. Понятно, что гостю запрещать грузить фотографии - это бесполезно. Он может быстро стать пользователем, зарегистировавшись на сайте.
Предположим пользователь создает новость.
Он пишет пост, паралельно добавляя фотографии, все происходит через визуальный редактор. Добавил одну фотографию, вторую, третью, потом решил, ай, не те фотографии, взял залил другие, или вообще передумал добавлять пост.Загруженные фотографии остались на сервере, которые со временем накапливаются, занимая место на диске. Другой пользователь намеренно грузит файлы на сервер, не добавляя постов, чтоб навредить ресурсу. Как с этим вы боритесь?

У меня пока что несколько идей
1. Отказаться от загрузок пользователя и пересадить их на публичные файловые хранилища. Загрузка фоток только для админов.
2. Добавлять фотографии можно доверенной группе пользователей.
Имеем плюсы -намеренно никто не сможет убить место на диске, простота реализации.
Минусы - доверенная группа тоже умеет передумывать, и не добавлять пост, загрузив файлы.
3. Добавляем фотографии в некую публичную темповую папку, после добавления поста переносим файлы
из темпа. Имеем плюсы: добавленные фотки не используемые лежат в темпе, их просто удалить.
Из минусов - пользователь может редактировав пост, удалить / поменять фотографию в посте, тем самым опять оставив ее на сервере не нужной.
4. Делаем таблицу, в которой храним - какой файл в каком посте находится.
Реализация достаточно обширная, тоесть надо разместить везде вызов сохранения ссылок, соответственно лишние телодвижения для сервера, чтоб выдрать все линки а потом их сохранить.
Вобщем то очень все непросто и как то кажется тяжелым.
Пока что сделал 4 - й вариант. Жду ваших вариантов. :)

Заранее благодарен.
 
Сверху