yindan преди 2 години
родител
ревизия
cf1aa46cc3
променени са 1 файла, в които са добавени 24 реда и са изтрити 11 реда
  1. 24 11
      model/upload.js

+ 24 - 11
model/upload.js

@@ -27,18 +27,31 @@ class Upload {
     }
 
     static async uploadRes(uploadPath = '', file) {
-        let name;
-        if (file.type == 'image') {
-            name = dayjs().valueOf() + '.png';
-        }
-        if (file.type == 'video') {
-            name = dayjs().valueOf() + '.mp4';
-        }
-        if (file.name) {
-            name = file.name;
-        }
+        let originalName = file.name || '';
+        let filePath = file.path;
+        let pathName = filePath.substr(filePath.indexOf('//tmp/') + 6);
+        
+        //获取文件后缀(包含.)
+        let ext = filePath.substr(filePath.lastIndexOf('.'));
+        //文件原始名称
+        let fileName = originalName.split(ext)[0];
+        // 对象键的最大长度为850个字节(按照一个汉字两个字节计算,如果原始文件名超过350个汉字就截断)
+        fileName = fileName.length > 350? fileName.substr(0, 350) : fileName;
+        //时间戳
+        let timestamp = dayjs().valueOf();
+        //文件名称:文件原始名称 + 时间戳 + 文件在本地的临时路径
+        let name = `${fileName}_${timestamp}_${pathName}`;
+        // if (file.type == 'image') {
+        //     name = dayjs().valueOf() + '.png';
+        // }
+        // if (file.type == 'video') {
+        //     name = dayjs().valueOf() + '.mp4';
+        // }
+        // if (file.name) {
+        //     name = file.name;
+        // }
         const cos = this.getCos();
-        name = name || file.url.substr(file.url.lastIndexOf('/') + 1);
+        // name = name || file.url.substr(file.url.lastIndexOf('/') + 1);
         return new Promise((resolve, reject) => {
             cos.postObject({
                 Bucket: Bucket,