UNIT文件下载工具
从UNIT上下载文件到开发上往往需要先下载到自己的电脑上,再层层上传,很不方便。
所以我做了一个工具。直接在开发服务器上下载UNIT上的文件。
程序位置
[email protected]:~/bin/unit-dl
[email protected]:~/bin/unit-dl
使用方法
$ unit-dl <URL> [<save-as-file>]
<URL> 是需要被下载的文件URL。
<save-as-file> 是想存成什么文件名。这可以不提供。
例
$ unit-dl ‘http://unit.sunseer.co.jp/attachments/11115/4989-YSP-campaign.gif‘
$ unit-dl ‘http://unit.sunseer.co.jp/attachments/11115/4989-YSP-campaign.gif‘ save_as_1.gif
程序会问你要你登录UNIT时的用户名和密码。
--------------------------
UNITIP=202.248.23.108
export LANG=en
urlencode () {
echo -n "$1" | xxd -p | sed -r ‘s/../%\0/g‘
}
TARGETURL="$1"
OUTFILE="$2"
if [ -z "$TARGETURL" ] ; then
echo "Error: the first argument should be a URL." >&2
exit 1
fi
echo -n "Unit username: "
read USERNAME
echo -n "Unit password: "
read -s PASSWORD
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ] ; then
echo "Error: both username and password are required." >&2
exit 1
fi
if [ -z "$OUTFILE" ] ; then
OUTFILEARG=""
else
OUTFILEARG="-O $OUTFILE"
fi
COOKIEFILE=`mktemp`
trap "rm $COOKIEFILE" EXIT
env http_proxy=$UNITIP \
wget --quiet -O - \
--http-user=sunseer \
--http-password=redmine \
--save-cookies=$COOKIEFILE \
--keep-session-cookies \
--post-data="username=$( urlencode "$USERNAME" )&password=$( urlencode "$PASSWORD" )" \
‘http://unit.sunseer.co.jp/login‘ \
> /dev/null
env http_proxy=$UNITIP \
wget $OUTFILEARG \
--http-user=sunseer \
--http-password=redmine \
--load-cookies=$COOKIEFILE \
--save-cookies=$COOKIEFILE \
--keep-session-cookies \
"$TARGETURL"