Преглед на файлове

qiniuyun: 增加文件上传七牛云的工具类

Signed-off-by: Binren Zhnag <zhangbr@elab-plus.com>
Binren Zhnag преди 5 години
родител
ревизия
3ba2697d35
променени са 1 файла, в които са добавени 82 реда и са изтрити 0 реда
  1. 82 0
      qiniuyun.py

+ 82 - 0
qiniuyun.py

@@ -0,0 +1,82 @@
+from qiniu import Auth, put_file
+
+
+class Qiniu(object):
+    def __init__(self, time_out=1000, headers=None):
+        """
+        :param time_out: 超时时间
+        :param headers: 请求头
+        """
+        self.q = Auth('wbHIPhUGq75tabnHbIpWCVvBC7c3Yt6pGG46eBZ2', 'VDb3Fhh-6LX9djR4UiXNZx7Xwk4S79fC87Kpwn-x')
+        self.time_out = time_out
+        self.headers = headers
+
+    def up_file(self, file_path, file_name):
+        """
+        七牛云上传媒体文件
+        :param content: 图片字节流数据
+        :return:
+        """
+        try:
+            # 上传到七牛后保存的文件名uuid4+后缀 拼接url
+            # file_path = f"{uuid.uuid4()}.jpg"
+            file_name = 'jianyexcx/{}'.format(file_name)
+            token = self.q.upload_token('image', file_name, 3600)  # 3600指的是token的过期时间
+            ret, info = put_file(token, file_name, file_path)
+            if ret:
+                # 上传成功返回地址
+                # print('https://dm.static.elab-plus.com/{}'.format(file_name))
+                return ret.get('key')
+            else:
+                print("上传失败")
+                return None
+        except Exception as e:
+            # 上传失败返回None
+            print("上传GG", e)
+            return None
+
+    def list_dir(self, text_list, dir_path):
+        dir_files = os.listdir(dir_path)  # 得到该文件夹下所有的文件
+        for file in dir_files:
+            file_path = os.path.join(dir_path, file)  # 路径拼接成绝对路径
+            print(file_path)
+            if os.path.isfile(file_path):  # 如果是文件,就打印这个文件路径
+                if file_path.endswith(".jpg"):
+                    text_list.append(file_path)
+            if os.path.isdir(file_path):  # 如果目录,就递归子目录
+                self.list_dir(text_list, file_path)
+        return text_list
+
+    def image_house(self, file_path):
+        header = {'image_name', 'image_url'}
+        file_list = self.list_dir([], file_path)
+        excel_data = []
+        for file in file_list:
+            (path, filename) = os.path.split(file)
+            hosue_name = filename.split('.')[0]
+            image_url = self.up_file(file, filename)
+            excel_data.append([hosue_name, image_url])
+
+
+if __name__ == '__main__':
+    import os
+    from file_util import FileUtil
+    qiniu = Qiniu()
+    file_path = r'E:\elab\建业小程序升级\10408'
+    files_list = []
+    files = FileUtil.load_file(file_path)
+    # qiniu.image_house(file_path)
+    sql_1 = 'insert into t_house_image (house_id, image_url, image_type, status, creator, created) values({}, "{}", "{}", 1, "binren", now());'
+    sql_2 = 'update t_house_image set image_url = "{}" where house_id = {} and image_type = "{}";'
+    sql_3 = 'delete from t_house_image where house_id = {} and image_type = "{}";'
+    ids = []
+    for file in files:
+        file_name = os.path.split(file)[1].split('.')[0]
+        name_info = file_name.split('_')
+        house_id = int(name_info[0])
+        image_type = name_info[1]
+        # if house_id not in ids:
+        #     ids.append(house_id)
+        url = qiniu.up_file(file, file_name)
+        print(sql_3.format(house_id, image_type))
+        print(sql_1.format(house_id, 'https://dm.static.elab-plus.com/{}'.format(url), image_type))