Не редкость, когда при загрузке файлов встречаются дубликаты имён — каждая доска должна это учитывать. Однако в phpBB можно загрузить два вложения с разными изображениями, но с одинаковым именем, в одном и том же сообщении. phpBB решает эту проблему, сохраняя исходное имя файла в поле «real_filename» в таблице вложений, а сгенерированное хешированное имя — в поле «physical_filename».
У меня есть 46 сообщений, конвертированных из моего форума phpBB, которые содержат дубликаты изображений из-за совпадения имён файлов. В некоторых случаях это произошло потому, что пользователь случайно загрузил один и тот же файл дважды. Но во многих случаях — нет. Я не уверен, как именно пользователь это сделал, но у меня есть пример, где он загрузил 11 разных изображений в phpBB, каждое с именем «image.jpg» (имя по умолчанию при перетаскивании картинки из письма на рабочий стол). В результате одно и то же изображение появилось в Discourse 11 раз. Похоже, конвертер идентифицирует вложение из phpBB для загрузки по полю real_filename — которое допускает дубликаты — вместо physical_filename.
К счастью, у меня есть скрипт на Ruby, который находит в PostgreSQL сообщения, содержащие одно и то же имя файла в Discourse дважды. Это будет неприятно (особенно для сообщения с 11 дубликатами!), но я смогу исправить это вручную, поскольку мой форум phpBB всё ещё существует. Но стоит отметить это как важную поправку, так как я ожидаю, что многие администраторы phpBB последуют моему примеру и перейдут на другую платформу.
Спасибо,
Дэн