Как сократить URL статической копии сайта до 256 символов?(создано с помощью wget) - PullRequest
0 голосов
/ 19 сентября 2019

Мне нужно создать полную копию сайта / зеркало https://www.landesmuseum -mecklenburg.de .Эта копия должна запускаться локально в системе Windows 7, которая не имеет сетевого подключения.Windows 7 имеет ограничение длины пути (255), которое достигается в моем случае.Как мне обойти это?

Я создаю статическую копию веб-сайта в системе Debian с: wget --mirror --adjust-extension --convert-links --restrict-file-names=windows --page-requisites -e robots=off --no-clobber --no-parent --base=./ https://www.landesmuseum-mecklenburg.de/.

Таким образом, я получил почти все, что мне нужно.Некоторые специальные URL / изображения загружаются через отдельный список URL-адресов следующим образом: wget -c -x -i imagelist.txt

После того, как я создаю архив из этих файлов и передаю их в мою тестовую систему Windows 7 и извлекаю их на локальный веб-сервер (называется "MiniWebserver") Я могу посетить http://localhost/ и все, кажется, работает.

Но некоторые глубокие ссылки, особенно изображения, имеют длину пути в файловой системе Windows NTFS более 255 символов.Все эти изображения не отображаются на локальной веб-странице.

Я попробовал вариант wget -nH --cut-dirs=5, но без приемлемого результата (index.html каждый раз перезаписывается).

ДругойИдея заключалась в том, чтобы использовать функцию совместимости с сокращением пути DOS, чтобы длинные имена каталогов были преобразованы в 8-символьные имена.Например, longdirname переведено на longdi~1.Но я понятия не имею, как это автоматизировать.

Обновление: еще одна идея

Еще одна вещь, которая пришла мне в голову, это использовать хеши по всему пути(например, md5) и используйте его вместо полного пути + имени файла.Кроме того, все URL-адреса в загруженных файлах .html также должны быть заменены.Но опять же: я понятия не имею, как это сделать с помощью инструментов командной строки Debian.

1 Ответ

0 голосов
/ 19 сентября 2019

Вы можете попробовать следующее:

wget --trust-server-names <url> 

- имена доверенных серверов

Если этот параметр включен, при перенаправлении последний компонент перенаправленияURL будет использоваться в качестве локального имени файла.По умолчанию используется последний компонент в исходном URL.

...