|
@@ -0,0 +1,69 @@
|
|
|
+#!/usr/bin/env python
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+"""
|
|
|
+ demeter web
|
|
|
+ name:pub.py
|
|
|
+ author:rabin
|
|
|
+"""
|
|
|
+from demeter.core import *
|
|
|
+import oss2
|
|
|
+from itertools import islice
|
|
|
+from datetime import *
|
|
|
+
|
|
|
+key = 'nongxiaohe'
|
|
|
+host = 'oss-cn-shanghai.aliyuncs.com'
|
|
|
+appId = 'LTAIsuklCbkXzpgt'
|
|
|
+appSecret = 'M4d7xLxY0bVE034rTL84MEasG8Q8YZ'
|
|
|
+
|
|
|
+url = 'http://'+key+'.'+host+'/'
|
|
|
+auth = oss2.Auth(appId, appSecret)
|
|
|
+endpoint = 'http://' + host
|
|
|
+bucket = 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
|
|
|
+ model.insert()
|
|
|
+#pic()
|