bzy_photo_collect.py 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. # -*- coding: utf-8 -*-
  2. # File Name:mqtt_chat_client.py
  3. # Python Version:3.5.1
  4. import os
  5. import django
  6. import sys
  7. from qcloudsms_py import SmsSingleSender
  8. from qcloudsms_py.httpclient import HTTPError
  9. from qcloudsms_py import SmsMultiSender
  10. BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 定位到你的django根目录
  11. sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir)))
  12. os.environ.setdefault("DJANGO_SETTINGS_MODULE",
  13. "yfwlw_pro.settings") # project_name 项目名称
  14. django.setup()
  15. import json
  16. from apps.AppInfoManage.models import Equip, Equip_type, MyUser, CBDphoto, CBDstatus, QXZdata, SCDstatus, CBDstatus, Equip_SimInfo, CBDdata, BZYphoto, RecentCBDdata,RecentSCDdata,\
  17. Msg_Conf, Msg_Send, BZYstatus
  18. import re
  19. import datetime
  20. import time
  21. import random
  22. from apps.SimInfo.views import get_siminfo
  23. from apps.ReportManage.all_dict import insect_dict_new, transpont_equip_scd
  24. import requests
  25. import oss2
  26. auth = oss2.Auth('LTAI4G7tFh5Nk4KXZoSPk1D8', 'RV4S2SfbLPoFNjlI4uIOoA0J1LQPQc')
  27. # Endpoint以杭州为例,其它Region请按实际情况填写。
  28. # bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  29. # bucket = oss2.Bucket(auth, 'https://cbdphoto.oss-cn-hangzhou.aliyuncs.com', 'cbdphoto')
  30. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'bzypic')
  31. def TimeStampToTime(timestamp):
  32. timeStruct = time.localtime(timestamp)
  33. str_p = time.strftime('%Y-%m-%d %H:%M:%S',timeStruct)
  34. dateTime_p = datetime.datetime.strptime(str_p,'%Y-%m-%d %H:%M:%S')
  35. return dateTime_p
  36. def get_FileCreateTime(filePath):
  37. # filePath = unicode(filePath,'utf8')
  38. t = os.path.getctime(filePath)
  39. return TimeStampToTime(t)
  40. # imei = request.POST.get("imei")
  41. for x in Equip.objects.filter(equip_type=7):
  42. imei = x.equip_id
  43. equip_obj = x
  44. file_dir = "../pyftp/ftp_file/bzy_photo/%s"%imei
  45. for root, dirs, file in os.walk(file_dir):
  46. if file != [] and "jpg" in file[0]:
  47. # print("当前路径下所有非目录子文件>>",file)
  48. for i in file:
  49. pic_addr_1 = root + "/" + i
  50. pic_addr = pic_addr_1.replace("../","")
  51. picname_1 = get_FileCreateTime(pic_addr_1)
  52. print("文件时间为",picname_1)
  53. # now = datetime.datetime.now()
  54. addr = pic_addr.split("/")[-1]
  55. if "192.168" in addr:
  56. print("长addr",addr)
  57. _time = addr.split("_")[2][0:14]
  58. print("------->>",len(_time))
  59. try:
  60. _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
  61. except:
  62. _time = picname_1
  63. print(_time)
  64. # if i.upl_time.hour != _time.hour:
  65. # i.upl_time = _time
  66. # i.save()
  67. elif len(addr) == 18:
  68. print("短addr",addr)
  69. _time = addr.split(".")[0][0:14]
  70. print("------->>",len(_time))
  71. _time = _time.split("\r")[0]
  72. try:
  73. _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
  74. except:
  75. _time = picname_1
  76. strnow = datetime.datetime.strftime(_time,'%Y%m')
  77. picname = datetime.datetime.strftime(_time,'%Y%m%d%H%M%S')
  78. # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1)
  79. print("图片数据库路径为pic_addr",pic_addr)
  80. new_addr = "https://bzypic.oss-cn-hangzhou.aliyuncs.com/" + strnow + '/' + imei + '/'+ picname + '.jpg'
  81. exist = bucket.object_exists(strnow + '/' + imei + '/'+ picname + '.jpg')
  82. if exist:
  83. print('object exist')
  84. if BZYphoto.objects.filter(addr=new_addr).exists():
  85. pass
  86. else:
  87. BZYphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time)
  88. os.remove(pic_addr_1)
  89. print("图片删除成功")
  90. print("数据库创建链接成功")
  91. else:
  92. print('object not exist')
  93. bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1)
  94. if BZYphoto.objects.filter(addr=new_addr).exists():
  95. pass
  96. else:
  97. BZYphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time)
  98. os.remove(pic_addr_1)
  99. print("图片删除成功")
  100. # BZYphoto.objects.create(equip_id=imei,addr=new_addr,upl_time=picname)
  101. print("oss传输成功")
  102. # if BZYphoto.objects.filter(addr=pic_addr).exists():
  103. # print("照片存在")
  104. # print("新的照片路径为",new_addr)
  105. # # 返回值为true表示文件存在,false表示文件不存在。
  106. # if exist:
  107. # if BZYphoto.objects.filter(addr=new_addr).exists():
  108. # BZYphoto.objects.filter(addr=new_addr).update(equip_id=equip_obj,upl_time=_time)
  109. # print('object exist')
  110. # BZYphoto.objects.filter(addr=pic_addr).update(equip_id=equip_obj,addr=new_addr,upl_time=_time)
  111. # else:
  112. # BZYphoto.objects.filter(addr=pic_addr).update(equip_id=equip_obj,addr=new_addr,upl_time=_time)
  113. # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1)
  114. # print("oss传输成功")
  115. # print('object not exist')
  116. # else:
  117. # print("照片不存在")
  118. # # print("图片时间为",get_FileCreateTime(picname))
  119. # if exist:
  120. # print('object exist')
  121. # if BZYphoto.objects.filter(addr=new_addr).exists():
  122. # BZYphoto.objects.filter(addr=new_addr).update(equip_id=equip_obj,upl_time=_time)
  123. # else:
  124. # BZYphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time)
  125. # else:
  126. # print('object not exist')
  127. # if BZYphoto.objects.filter(addr=new_addr).exists():
  128. # BZYphoto.objects.filter(addr=new_addr).update(equip_id=equip_obj,upl_time=_time)
  129. # else:
  130. # BZYphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time)
  131. # # BZYphoto.objects.create(equip_id=imei,addr=new_addr,upl_time=picname)
  132. # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1)
  133. # print("oss传输成功")
  134. if equip_obj.ftp_addr:
  135. # bzy_imgs = "http://www.yfzhwlw.com/bzy/" + photo_addr
  136. data = {
  137. "Image":new_addr,
  138. "imei":imei,
  139. }
  140. data = json.dumps(data)
  141. headers = {"Content-Type": "application/json; charset=UTF-8", 'Connection': 'close'}
  142. bzy_photo = requests.post(equip_obj.ftp_addr,data=data,headers=headers,timeout=3)
  143. print("转发成功")
  144. print('=================================================')
  145. # while True:
  146. # sta1 = BZYstatus.objects.all()
  147. # sta3 = []
  148. # photo_list = []
  149. # for i in sta1:
  150. # sta3.append(i.equip_id.equip_id)
  151. # for imei in sta3:
  152. # equip_obj = Equip.objects.get(equip_id=imei)
  153. # file_dir = "../pyftp/ftp_file/bzy_photo/%s"%imei
  154. # for root, dirs, files in os.walk(file_dir):
  155. # print(root)
  156. # if root.endswith(imei):
  157. # pass
  158. # else:
  159. # # print("当前目录------->>",root)
  160. # for roots, dirss, file in os.walk(root):
  161. # # print(roots) #当前目录路径
  162. # # print(dirs) #当前路径下所有子目录
  163. # # print(file) #当前路径下所有非目录子文件
  164. # if file != []:
  165. # for i in file:
  166. # photo_addr = roots + "/" + i
  167. # photo_addr = photo_addr.replace("../","")
  168. # # print(photo_addr)
  169. # if BZYphoto.objects.filter(addr=photo_addr).exists():
  170. # # print("照片存在")
  171. # pass
  172. # else:
  173. # # addr = photo_addr
  174. # addr = photo_addr.split("/")[-1]
  175. # if "192.168" in addr:
  176. # print("长addr",addr)
  177. # _time = addr.split("_")[2][0:14]
  178. # print("------->>",len(_time))
  179. # try:
  180. # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
  181. # except:
  182. # continue
  183. # print(_time)
  184. # # if i.upl_time.hour != _time.hour:
  185. # # i.upl_time = _time
  186. # # i.save()
  187. # elif len(addr) == 18:
  188. # print("短addr",addr)
  189. # _time = addr.split(".")[0][0:14]
  190. # print("------->>",len(_time))
  191. # _time = _time.split("\r")[0]
  192. # try:
  193. # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
  194. # except:
  195. # continue
  196. # print(_time)
  197. # # if i.upl_time.hour != _time.hour:
  198. # # i.upl_time = _time
  199. # # i.save()
  200. # print("图片时间为",_time)
  201. # print("图片链接为",photo_addr)
  202. # BZYphoto.objects.create(equip_id=equip_obj,addr=photo_addr,upl_time=_time)
  203. # if equip_obj.ftp_addr:
  204. # bzy_imgs = "http://www.yfzhwlw.com/bzy/" + photo_addr
  205. # data = {
  206. # "Image":bzy_imgs,
  207. # "imei":imei,
  208. # }
  209. # data = json.dumps(data)
  210. # headers = {"Content-Type": "application/json; charset=UTF-8", 'Connection': 'close'}
  211. # bzy_photo = requests.post(equip_obj.ftp_addr,data=data,headers=headers,timeout=3)
  212. # print("转发成功")
  213. # print('=================================================')
  214. # sys.stdout = origin
  215. # f.close()
  216. # print("过滤完成")
  217. # time.sleep(3600)