предисловие
После напоминания нескольких друзей обнаружил, что многие картинки в личном блоге битые и недоступны, о причине много говорить не буду, так как проблема есть, ее надо решать.
Первоначально мой подход очень прост и сырит: найти исходное изображение, загруженное для перезагрузки новой карты карты, а затем заменить доступный адрес.
Проделав это раз или два, я был в отчаянии. . .
Для того, чтобы код имел хороший опыт чтения в паблике, я никогда не буду публиковать код, если могу сделать скриншот, что приводит к более чем десятку картинок в статье.
К счастью, как сказал старший брат «стыдно человеческой плоти XX», этот вид повторяющейся работы можно полностью автоматизировать, так что на этот раз есть этот инструмент.
Это может занять все вашеMarkdown
Все картинки в письменном содержании заменены новыми картинными клумбами.
Эффект операции следующий:
использовать
Вы можете загрузить пакет JAR напрямую с этого адреса и запустить:GitHub.com/crossover J я…
Конечно, вы также можете загрузить исходный код для компиляции и запуска:
git clone https://github.com/crossoverJie/blog.toolbox
mvn clean package
java -jar nows-0.0.1-SNAPSHOT.jar --app.downLoad.path=/xx/img /xx/xx/path 100
Смотри режим работы и знай, по сути пользуйсяSpringBoot
Я написал инструмент для пакетной загрузки изображений, которые появляются в тексте, и загрузки их для завершения замены.
- в
app.downLoad.path
Он используется для сохранения загруженных изображений в каталог локального диска. -
/xx/xx/path
сканирование.md
Каталог файлов, который будет рекурсивно сканировать все файлы. - 100 — количество файлов, подлежащих замене.По умолчанию сортировка выполняется по времени модификации файла.
Если у вас много картинок, есть еще несколько ям, на которые нужно обратить внимание.
количество потоков
По умолчанию запускаются два потока для просмотра файлов, загрузки и скачивания изображений, обновления текста и т. д. Сетевой ввод-вывод на самом деле занимает довольно много времени, поэтому вы можете соответствующим образом открыть больше потоков, чтобы повысить эффективность выполнения задачи.
Однако слишком большое количество потоков может привести к срабатыванию механизма защиты образа, а также это связано с конфигурацией вашего собственного компьютера, что необходимо учитывать в сочетании с реальной ситуацией.
Таким образом, вы можете пройти--app.thread=6
Такие параметры для настройки количества потоков.
Ограничения по картинной кровати
Это связано с тем, что слишком много изображений должно появляться с высокой вероятностью.Если частота запросов на загрузку слишком высока, легко быть ограниченным и заблокированным по IP.
{"code":"error","msg":"Upload file count limit. Time left 1027 second."}
В настоящее время большинство IP-адресов заблокированы, поэтому это можно решить, зайдя через прокси и сменив сеть.
Конечно, если это самодельная кровать, ею можно пренебречь.
Повторить попытку
Поскольку я использую бесплатное изображение, процесс загрузки иногда завершается с ошибкой, поэтому по умолчанию используется механизм 5-кратной повторной попытки; если это не удается пять раз, есть вероятность, что IP-адрес заблокирован.
Даже после того, как ip заблокирован, если вы измените новый ip и повторно запустите программу, она автоматически отфильтрует замененные изображения и не будет выполнять бесполезную работу, можете не сомневаться.
сохранение изображения
По умолчанию скачанные картинки будут сохраняться локально.Так же рекомендую воспользоваться этой возможностью,кэшировать копию локально,и имя совпадающее с названием в тексте,чтобы избежать возможности восстановления после кражи картинки полностью зависает в будущем.
Суммировать
О коде этой программы много говорить нечего, он действительно довольно прост, вы можете спуститься и посмотреть его сами, если вам интересно.
В настоящее время функция также очень проста, и ее достаточно для самостоятельного использования; посмотрите, есть ли у вас другие потребности в будущем, а затем постепенно улучшайте ее, например:
- Сбой повторной передачи кровати ФИГ автоматически переключается на доступную кровать ФИГ.
- Общая эффективность обработки повышается.
- Лучшее отображение прогресса во время выполнения задачи и т. д.
Вставьте адрес исходного кода еще раз:
Ваши лайки и репост - лучшая поддержка для меня