Управление загруженными файлами на сервере

Управление загруженными файлами на сервере

У меня есть сервер, на котором размещен интранет-сайт, где одной из функций будет возможность загружать файлы. Файлы будут сохраняться в папке с ограниченным доступом и управляться через веб-бэк-энд. Чтобы избежать конфликтов имен, я планирую назначать UUID и сохранять исходное имя файла вместе с UUID в базе данных для будущего извлечения.

Однако у меня есть два опасения:

  1. Возможность дублирования файлов (на уровне байтов, а не только по имени) и
  2. Обеспечение целостности файлов.

Я думал, что если я запущу какой-нибудь тип хеша/контрольной суммы (MD5, SHA256 и т. д.), это может решить обе проблемы. Я мог бы сохранить хеш и сравнить файл в будущем и проверить, не был ли он поврежден, и если бы я нашел другой файл с таким же хешем, я бы знал, является ли файл настоящим дубликатом.

Итак, мои вопросы:

  1. Являются ли мои опасения по поводу повреждения файлов необоснованными?
  2. И еще, является ли это хорошей стратегией для выявления дубликатов файлов?

решение1

1) повреждение файлов встречается нечасто, и базовая система должна предотвращать и предупреждать о таких вещах, но да, неплохо перепроверить. А еще лучше иметь резервную копию вне сайтаhttp://en.wikipedia.org/wiki/Сравнение_программ_резервного_копирования

2) если вы в любом случае используете хеши, то нет необходимости в других стратегиях, но да, есть что-то вроде обнаружения перемещения rsync, которое будет сравнивать все файлы по размеру, что хорошо и быстро, затем любой файл одинакового размера будет хеширован, если еще не был, и проверен на уникальность. В зависимости от содержимого файла есть другие варианты, такие как git для текста или quality trumping для медиа.

Связанный контент