| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- # from qcloudsms_py import SmsSingleSender
- # from qcloudsms_py.httpclient import HTTPError
- # from qcloudsms_py import SmsMultiSender
- import os
- import django
- import sys
- BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 定位到你的django根目录
- sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir)))
- os.environ.setdefault("DJANGO_SETTINGS_MODULE",
- "yfwlw_pro.settings") # project_name 项目名称
- django.setup()
- import json
- import time
- import requests
- import datetime
- from apps.ReportManage.all_dict import mobile_list, insect_dict_new, qxz_dict
- from apps.AppInfoManage.models import Equip, Equip_type, YBQphoto, Msg_Send, Msg_Conf, Equip_SimInfo, SCDstatus, CBDstatus, RecentCBDdata, MyUser,YBQphoto, BZYdata, QXZstatus,QXZdata,\
- QXZstatus_New, QXZ_Conf, QXZ_Default_Conf, MyUser, JKphoto, BZYphoto, QXZdata_New, Group, CBDstatus_all, Alarm_record
- from apps.SimInfo.views import get_siminfo
- import paho.mqtt.client as mqtt
- # 短信应用 SDK AppID
- appid = 1400227496 # SDK AppID 以1400开头
- # 短信应用 SDK AppKey
- appkey = "c9aba961bd30072f1e1b9272077abaea"
- from requests.auth import HTTPBasicAuth
- import xlrd, xlwt
- import random
- from django.db import transaction
- from django.db.models import Q
- from django.db.models import Count
- import math
- import os
- import urllib.parse
- import urllib.request
- import re
- from collections import Counter
- import datetime
- import oss2
- import threadpool
- # i = CBDstatus.objects.get(equip_id="867814040037265")
- # for i in CBDstatus.objects.all():
- # print("--->>lng",i.lng)
- # print("--->>lat",i.lat)
- # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
- # auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
- auth = oss2.Auth('LTAI4G7tFh5Nk4KXZoSPk1D8', 'RV4S2SfbLPoFNjlI4uIOoA0J1LQPQc')
- # Endpoint以杭州为例,其它Region请按实际情况填写。
- # bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
- # bucket = oss2.Bucket(auth, 'https://cbdphoto.oss-cn-hangzhou.aliyuncs.com', 'cbdphoto')
- bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'ybqpic')
- # # 必须以二进制的方式打开文件,因为需要知道文件包含的字节数。
- # with open('./1.jpg', 'rb') as fileobj:
- # # Seek方法用于指定从第1000个字节位置开始读写。上传时会从您指定的第1000个字节位置开始上传,直到文件结束。
- # fileobj.seek(1000, os.SEEK_SET)
- # # Tell方法用于返回当前位置。
- # current = fileobj.tell()
- # bucket.put_object('2.jpg', fileobj)
-
- # aa = bucket.put_object_from_file('10/112234.jpg', '112233.jpg')
- # print(aa)
- def TimeStampToTime(timestamp):
- timeStruct = time.localtime(timestamp)
- str_p = time.strftime('%Y-%m-%d %H:%M:%S',timeStruct)
- dateTime_p = datetime.datetime.strptime(str_p,'%Y-%m-%d %H:%M:%S')
- return dateTime_p
- def get_FileCreateTime(filePath):
- # filePath = unicode(filePath,'utf8')
- t = os.path.getctime(filePath)
- return TimeStampToTime(t)
- def oss_transpond(pic_addr_1):
- pic_addr = pic_addr_1.replace("../","")
- picname_1 = get_FileCreateTime(pic_addr_1)
- # print("文件时间为",picname_1)
- # now = datetime.datetime.now()
-
- addr = pic_addr.split("/")[-1]
- if len(addr) == 25:
- # print("长addr",addr)
- _time = addr.split("-")[1] + addr.split("-")[2]
- _time = _time.split(".")[0]
- print("------->>",len(_time))
- # print(_time)
- try:
- _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
- except:
- print("时间转化错误alarm")
- print("----->>",addr)
- _time = picname_1
- # print("192.168的时间",pic_addr)
- print("------->>",_time)
- # if i.upl_time.hour != _time.hour:
- # i.upl_time = _time
- # i.save()
- else:
- print("其他addr",addr)
- print("其他",pic_addr)
- _time = get_FileCreateTime(pic_addr_1)
- # time.sleep(1)
- if _time.year == 1970:
- _time = get_FileCreateTime(pic_addr_1)
-
- strnow = datetime.datetime.strftime(_time,'%Y%m')
- picname = datetime.datetime.strftime(_time,'%Y%m%d%H%M%S')
-
- # # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1)
- # print("图片数据库路径为pic_addr",pic_addr)
-
- # new_addr = "https://cbdpic.oss-cn-hangzhou.aliyuncs.com/" + strnow + '/' + imei + '/'+ picname + '.jpg'
- new_addr = "http://ybq.yfpyx.com/" + imei + '/' + strnow + '/'+ picname + '.jpg'
-
- exist = bucket.object_exists(imei + '/' + strnow + '/'+ picname + '.jpg')
-
- if exist:
- print('object exist')
- if YBQphoto.objects.filter(addr=pic_addr).exists():
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- # YBQphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time)
- YBQphoto.objects.filter(addr=pic_addr).update(addr=new_addr)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- print("数据库创建链接成功")
- else:
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- YBQphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time,real_time=_time)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- else:
- print('object not exist')
- bucket_pic = bucket.put_object_from_file(imei + '/' + strnow + '/'+ picname + '.jpg', pic_addr_1)
- print("----------->>>",bucket_pic)
- if YBQphoto.objects.filter(addr=pic_addr).exists():
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- # YBQphoto.objects.create(equip_id=equip, addr=img_addr,at=eval(data_obj.cbd_data)['at'],ah=eval(data_obj.cbd_data)['ah'])
- YBQphoto.objects.filter(addr=pic_addr).update(addr=new_addr)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- else:
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- YBQphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time,real_time=_time)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- # BZYphoto.objects.create(equip_id=imei,addr=new_addr,upl_time=picname)
- print("oss传输成功")
- # for obj in oss2.ObjectIterator(bucket, prefix='202009/865650042837720/'):
- # addr = "https://bzypic.oss-cn-hangzhou.aliyuncs.com/" + obj.key
- # if BZYphoto.objects.filter(addr=addr).exists():
- # print("照片存在")
- # else:
- # print("照片不存在")
- # print(addr)
- for x in Equip.objects.filter(equip_type=4):
- imei = x.equip_id
- equip_obj = x
- file_dir = "../pyftp/ftp_file/sex_photo1/%s"%imei
- for root, dirs, file in os.walk(file_dir):
- if file != [] and "jpg" in file[0]:
- # print("当前路径下所有非目录子文件>>",file)
- for i in file:
- pic_addr_1 = root + "/" + i
- pic_addr = pic_addr_1.replace("../","")
- picname_1 = get_FileCreateTime(pic_addr_1)
- # print("文件时间为",picname_1)
- # now = datetime.datetime.now()
-
- addr = pic_addr.split("/")[-1]
- if len(addr) == 25:
- # print("长addr",addr)
- _time = addr.split("-")[1] + addr.split("-")[2]
- _time = _time.split(".")[0]
- print("------->>",len(_time))
- # print(_time)
- try:
- _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
- except:
- print("时间转化错误alarm")
- print("----->>",addr)
- _time = picname_1
- # print("192.168的时间",pic_addr)
- print("------->>",_time)
- # if i.upl_time.hour != _time.hour:
- # i.upl_time = _time
- # i.save()
- else:
- print("其他addr",addr)
- print("其他",pic_addr)
- _time = get_FileCreateTime(pic_addr_1)
- # time.sleep(1)
- if _time.year == 1970:
- _time = get_FileCreateTime(pic_addr_1)
-
- strnow = datetime.datetime.strftime(_time,'%Y%m')
- picname = datetime.datetime.strftime(_time,'%Y%m%d%H%M%S')
-
- # # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1)
- # print("图片数据库路径为pic_addr",pic_addr)
-
- # new_addr = "https://cbdpic.oss-cn-hangzhou.aliyuncs.com/" + strnow + '/' + imei + '/'+ picname + '.jpg'
- new_addr = "http://ybq.yfpyx.com/" + imei + '/' + strnow + '/'+ picname + '.jpg'
-
- exist = bucket.object_exists(imei + '/' + strnow + '/'+ picname + '.jpg')
-
- if exist:
- print('object exist')
- if YBQphoto.objects.filter(addr=pic_addr).exists():
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- # YBQphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time)
- YBQphoto.objects.filter(addr=pic_addr).update(addr=new_addr)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- print("数据库创建链接成功")
- else:
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- YBQphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time,real_time=_time)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- else:
- print('object not exist')
- bucket_pic = bucket.put_object_from_file(imei + '/' + strnow + '/'+ picname + '.jpg', pic_addr_1)
- print("----------->>>",bucket_pic)
- if YBQphoto.objects.filter(addr=pic_addr).exists():
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- # YBQphoto.objects.create(equip_id=equip, addr=img_addr,at=eval(data_obj.cbd_data)['at'],ah=eval(data_obj.cbd_data)['ah'])
- YBQphoto.objects.filter(addr=pic_addr).update(addr=new_addr)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- else:
- if YBQphoto.objects.filter(addr=new_addr).exists():
- pass
- else:
- YBQphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time,real_time=_time)
- # os.remove(pic_addr_1)
- print("图片删除成功")
- # BZYphoto.objects.create(equip_id=imei,addr=new_addr,upl_time=picname)
- print("oss传输成功")
-
-
-
- # if __name__ == '__main__':
- # data = []
- # for x in Equip.objects.filter(equip_type=4):
- # imei = x.equip_id
- # file_dir = "../pyftp/ftp_file/sex_photo1/%s"%imei
- # for root, dirs, file in os.walk(file_dir):
- # if file != [] and "jpg" in file[0]:
- # # print("当前路径下所有非目录子文件>>",file)
- # for i in file:
- # pic_addr_1 = root + "/" + i
- # data.append(pic_addr_1)
- # print("-------------->>",data[0:8])
- # pool = threadpool.ThreadPool(20)
- # req = threadpool.makeRequests(oss_transpond, data)
- # [pool.putRequest(req) for req in req]
- # pool.wait()
|