Картинная кровать не удалась? Может быть, вам стоит попробовать этот инструмент

Java
Картинная кровать не удалась? Может быть, вам стоит попробовать этот инструмент

предисловие

После напоминания нескольких друзей обнаружил, что многие картинки в личном блоге битые и недоступны, о причине много говорить не буду, так как проблема есть, ее надо решать.

Первоначально мой подход очень прост и сырит: найти исходное изображение, загруженное для перезагрузки новой карты карты, а затем заменить доступный адрес.

Проделав это раз или два, я был в отчаянии. . .

Для того, чтобы код имел хороший опыт чтения в паблике, я никогда не буду публиковать код, если могу сделать скриншот, что приводит к более чем десятку картинок в статье.

К счастью, как сказал старший брат «стыдно человеческой плоти 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 и повторно запустите программу, она автоматически отфильтрует замененные изображения и не будет выполнять бесполезную работу, можете не сомневаться.

сохранение изображения

По умолчанию скачанные картинки будут сохраняться локально.Так же рекомендую воспользоваться этой возможностью,кэшировать копию локально,и имя совпадающее с названием в тексте,чтобы избежать возможности восстановления после кражи картинки полностью зависает в будущем.

Суммировать

О коде этой программы много говорить нечего, он действительно довольно прост, вы можете спуститься и посмотреть его сами, если вам интересно.

В настоящее время функция также очень проста, и ее достаточно для самостоятельного использования; посмотрите, есть ли у вас другие потребности в будущем, а затем постепенно улучшайте ее, например:

  • Сбой повторной передачи кровати ФИГ автоматически переключается на доступную кровать ФИГ.
  • Общая эффективность обработки повышается.
  • Лучшее отображение прогресса во время выполнения задачи и т. д.

Вставьте адрес исходного кода еще раз:

GitHub.com/crossover J я…

Ваши лайки и репост - лучшая поддержка для меня