| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | #!/usr/bin/env python# -*- coding: utf-8 -*-"""    demeter web    name:pub.py    author:rabin"""from demeter.core import *import oss2from itertools import islicefrom datetime import *key = 'xinnongbaohe'host = 'oss-cn-shanghai.aliyuncs.com'appId = 'LTAIsuklCbkXzpgt'appSecret = 'M4d7xLxY0bVE034rTL84MEasG8Q8YZ'url = 'http://'+key+'.'+host+'/'auth = oss2.Auth(appId, appSecret)endpoint = 'http://' + hostbucket = oss2.Bucket(auth, endpoint, key)fix = '.jpg'def pic():	model = Demeter.model('device_info')	model.hardware_type = 6	data = model.select()	if data:		for value in data:			if url in value['value']:				prefix = value['value'].replace(url, '')				prefix = prefix.replace(fix, '')				ossLoad(value, prefix)def ossLoad(value, prefix, marker=''):	#data = oss2.ObjectIterator(bucket, prefix=prefix)	data = bucket.list_objects(prefix=prefix, marker=marker, max_keys=100)		if data.is_truncated == True:		ossLoad(value, prefix, data.next_marker)	elif data.object_list:		pics = []		for v in data.object_list:			pics.append((v.key, v.last_modified))		for v in pics[-10:]:			savePic(value, v[0], v[1])	#oss2.resumable_download(bucket, 'remote.txt', 'local.txt')def savePic(value, file, cur):	spic = url + file	model = Demeter.model('device_pic')	model.spic = spic	data = model.select()	if not data:		day = str(date.today())		day = day.split('-')		file_name =  spic		file_path = day[0] + '/' + day[1] + '/' + day[2]		file_path = File.mkdirs(os.path.join(Demeter.path, 'runtime','camera', file_path)) + '/' + Demeter.md5(file_name) + '.jpg'		oss2.resumable_download(bucket, file, file_path)		model.pic = file_path.replace(Demeter.path + 'runtime', '')		model.spic = spic		model.farm_id = value['farm_id']		model.gateway_id = value['gateway_id']		model.device_id = value['id']		model.sdate = cur		id = model.insert()		if id:			bucket.delete_object(file)#pic()
 |