|
|

楼主 |
发表于 2009-5-20 01:59:14
|
显示全部楼层
Post by firefoxmmx;1988922
萝莉控~弄个megaload或者google相册的萨
于是 picasa 的上传脚本
编辑:: 仔细看了下服务器返回的信息,改了下脚本,这样可以选择要上传图片到的哪个专辑,并获得更多的信息
- #!/bin/bash
- # Usage $0 /path/to/file [PicName]
- my_pic="$1"
- [ -z "$2" ] &&
- pic_title=`basename "$my_pic"` ||
- pic_title="$2"
- pic_type=`file -b --mime-type "$my_pic"`
- ### Your google account and password
- username=
- password=
- auth_key=$( curl -s https://www.google.com/accounts/ClientLogin -d Email="$username"@gmail.com -d Passwd="$password" -d accountType=GOOGLE -d source=Google-cURL-Example -d service=lh2 | awk -F\= '/^Auth=/{print $2}' )
- picasa_default_out="picasa_default.tmp"
- picasa_album_addrs="picasa_album_addrs.tmp"
- picasa_album_names="picasa_album_names.tmp"
- curl -s --header "Authorization: GoogleLogin auth=$auth_key" "http://picasaweb.google.com/data/feed/api/user/default" > "$picasa_default_out"
- echo "**** Album Addrs Are ****"
- cat "$picasa_default_out" | tr '>' '\n' | grep "/feed/api/user/" | grep '<link rel' | grep id | cut -d\' -f 6 | tee "$picasa_album_addrs"
- echo "**** Album Names Are ****"
- idx=1
- cat "$picasa_default_out" | tr '>' '\n' | grep "</gphoto:name" | cut -d'<' -f 1 | tee "$picasa_album_names" | while read line ; do echo "$idx"') '"$line" ; (( idx++ )) ; done
- echo "**** Choose Up-Album ****"
- echo ":"
- read my_choice
- album_name=$( head -"$my_choice" "$picasa_album_names" | tail -1 )
- album_addr=$( head -"$my_choice" "$picasa_album_addrs" | tail -1 )
- echo "**** Uploading $pic_title to $album_name ****"
- my_pic_info="picasa_pic_info.tmp"
- my_pic_info_brief="picasa_pic_info_brief.tmp"
- curl -# --request POST --data-binary "@$my_pic" --header "Slug: $pic_title" --header "Content-Type: $pic_type" --header "Authorization: GoogleLogin auth=$auth_key" "$album_addr" > "$my_pic_info"
- cat "$my_pic_info" | tr '>' '\n' | sed '/media:content url/,$!d' > "$my_pic_info_brief"
- my_pic_page_url=$( cat "$my_pic_info" | tr '>' '\n' | grep 'text/html' | grep "$album_name" | cut -d\' -f 6 )
- my_pic_src_url=$( cat "$my_pic_info_brief" | head -1 | cut -d\' -f 2 )
- my_pic_s72_url=$( cat "$my_pic_info_brief" | grep '/s72/' | cut -d\' -f 2 )
- my_pic_s144_url=$( cat "$my_pic_info_brief" | grep '/s144/' | cut -d\' -f 2 )
- my_pic_s288_url=$( cat "$my_pic_info_brief" | grep '/s288/' | cut -d\' -f 2 )
- echo "**** Image SourceUrl ****"
- echo "$my_pic_src_url"
- echo "**** Image ThumbUrls ****"
- echo "$my_pic_s72_url"
- echo "$my_pic_s144_url"
- echo "$my_pic_s288_url"
- echo "**** Album View Page ****"
- echo "$my_pic_page_url"
复制代码
注意::生成的 picasa_*.tmp 文件保留了你这次上传服务器返回的信息,如果要删掉自己加一行 rm -f picasa_*.tmp.
还有::picasa_album_addrs.tmp 里头有你相册的feed地址。包括非公开相册的 authkey , <注意==>, 这些feed地址应当是不会变的,所以,并没有必要每一次都获取,你可以运行一次脚本获取地址后改下脚本,注释掉前面这部分.
Sample Output::
编辑:: BUG:: 相册名是中文时返回的值一般人读不明白。比如我有个相册叫“相册”,返回来叫“OQXMpK”这个是什么加密/编码方式我看不出来。请指教!另外如果图片的名字里有中文,上传后也会变形。 |
|