Как вычислить хеш для строки (URL) в ударе для кэширования wget

Существует два различных пути, которыми Вы могли бы пойти об этом.

1) данные, которые необходимо совместно использовать, являются нестойкими. Другими словами, необходимо запустить одно приложение с частью данных, с которыми оно может сделать что-то. В этом случае Вы зарегистрировали бы специальную схему URL на приложение.

можно узнать больше информации о схемах URL через Craig Hockenberry в его [отредактированное] сообщение в блоге .

2) данные, которые необходимо совместно использовать, являются персистентными. Другими словами, Вам нужно что-то как файл данных, который оба приложения могут считать и записать также. Насколько я знаю, что нет безопасного способа сделать это кроме того, чтобы хранить Ваши данные на удаленном сервере. При необходимости в данных, доступных без информационного соединения тогда, необходимо было бы выяснить способ синхронизировать данные между отдельными приложениями и удаленным сервером.

17
задан Bambax 21 October 2009 в 17:39
поделиться

2 ответа

Похоже, вам нужна системная утилита md5sum.

URLMD5=`/bin/echo $URL | /usr/bin/md5sum | /bin/cut -f1 -d" "`

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

FILENAME=`echo $URL | /bin/sed -e 's#.*/##'`
URLMD5=`/bin/echo $FILENAME | /usr/bin/md5sum | /bin/cut -f1 -d" "`

Обратите внимание, что в зависимости от в вашем дистрибутиве путь к cut может быть / usr / bin / cut .

30
ответ дан 30 November 2019 в 10:49
поделиться

Newer versions of Bash provide an associative array, as well as an indexed array. Something like this might work for you:

declare -A myarray
myarray["url1"]="url1_content"
myarray["url2"]=""

if [ ! -z ${myarray["url1"]} ] ; then 
    echo "Cached";
fi

wget will typically rename the files with a filename.html.1, .2, etc., so you could use the associative array to store a list of which one has been downloaded and what the actual filename was.

1
ответ дан 30 November 2019 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: