# 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('', '') auth = oss2.Auth('LTAI4G7tFh5Nk4KXZoSPk1D8', 'RV4S2SfbLPoFNjlI4uIOoA0J1LQPQc') # Endpoint以杭州为例,其它Region请按实际情况填写。 # bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '') # 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()