标签:
之前喜欢都是使用的七牛作为网站图片外链,后来需要做一个图片墙的应用,图片的数量激增,考虑七牛的每月10g流量可能不太够用,于是转而寻找其他图片外链。
后来选择了贴图库,号称无限空间,无限流量,看起来很不错。但实际使用起来问题在于上传的图片生成的外链url中的文件名是随机生成的,像很多相册一样,不是很方便管理。
用七牛的时候都是,直接url+图片名的,所以代码里很容易就将所有外链写到页面上,而贴图库的外链地址无法做到。还好提供了API。
不过文档实例使用的是PHP, 我站点使用的Python,就仿照着写了一下,测试下没什么问题了,主要用于获取图片名和外链url的对应关系。
下面贴出代码
# -*- coding: utf-8 -*- import time import urllib import urllib2 import json import base64 import hmac import hashlib ## 从贴图库(tietuku.com)相册获取图片 ##获取相册信息API #tmp_params={ "deadline": deadline, "action": "get", "uid":1} #url="http://api.tietuku.com/v1/Album" ##秘钥 AccessKey = ‘‘ SecretKey = ‘‘ ##预设变量,也可通过相册API获取 album_id = 1; album_pages = 1; result = "" for page in range(1,album_pages+1): ##请求参数和URL deadline = int(time.time())+ 60 tmp_params={ "deadline": deadline, "action": "album", "aid":album_id, "page_no":page} url="http://api.tietuku.com/v1/List" ##请求参数与秘钥生成Token jsoncode = json.dumps(tmp_params) encodedParam = base64.b64encode(jsoncode) sign = hmac.new(SecretKey, encodedParam, digestmod=hashlib.sha1).hexdigest() encodedSign = base64.b64encode(sign) Token = AccessKey + ‘:‘ + encodedSign + ‘:‘ + encodedParam ##发送http请求 parameters = {"Token": Token} data = urllib.urlencode(parameters) request=urllib2.Request(url,data) response=urllib2.urlopen(request) res_data = response.read() res_dict=json.loads(res_data) for e in res_dict["pic"]: result = result + e["name"]+" : "+"\""+e["linkurl"]+"\"" +",\n" print result
标签:
原文地址:http://my.oschina.net/zhudibrian/blog/374599