Selaa lähdekoodia

minio上传fix

cxmo 11 kuukautta sitten
vanhempi
commit
3cf062762e
1 muutettua tiedostoa jossa 54 lisäystä ja 54 poistoa
  1. 54 54
      src/hooks/useUploadFileToOSS.js

+ 54 - 54
src/hooks/useUploadFileToOSS.js

@@ -83,74 +83,74 @@ export async function useUploadToMinIO (file, fileName, options = {}){
         accessKey: res.Data.AccessKeyId,
         secretKey: res.Data.SecretKeyId,
     })
-    console.log(minioClient);
-    try {
-        var metaData = {
-            ...{
-                'Content-Type': file.type || 'application/octet-stream',
-                "Content-Length": file.size,
-            },
-            ...options
-        }
-
-        minioClient.bucketExists(res.Data.Bucketname, function (err, exists) {
-            if (err) {
-                return console.log("minio 查看桶是否存在失败" + err)
-            }
-            if (!exists) {
-                // 不存在桶,创建桶
-                console.log("桶不存在,先创建桶", res.Data.Bucketname);
-                minioClient.makeBucket(res.Data.Bucketname, res.Data.RegionId, function (err) {
-                    if (err) {
-                        console.log("minio 创建桶失败" + err)
-                        return 
-                    }
+    const metaData = {
+        ...{
+            'Content-Type': file.type || 'application/octet-stream',
+            "Content-Length": file.size,
+        },
+        ...options
+    }
+    return new Promise((resolve,reject)=>{
+        try {
+            minioClient.bucketExists(res.Data.Bucketname, function (err, exists) {
+                if (err) {
+                    return console.log("minio 查看桶是否存在失败" + err)
+                }
+                if (!exists) {
+                    // 不存在桶,创建桶
+                    console.log("桶不存在,先创建桶", res.Data.Bucketname);
+                    minioClient.makeBucket(res.Data.Bucketname, res.Data.RegionId, function (err) {
+                        if (err) {
+                            console.log("minio 创建桶失败" + err)
+                            return 
+                        }
+                        let reader = new FileReader();
+                        // console.log(reader);
+                        reader.readAsArrayBuffer(file);
+                        reader.onloadend = function (e) {
+                            const dataurl = e.target.result;
+                            let bufferStream = new stream.PassThrough();
+                            // 转化成数据流  minio接受数据流格式
+                            bufferStream.end(Buffer.from(dataurl))
+                            minioClient.putObject(res.Data.Bucketname, fileName, bufferStream, file.size, metaData, function (err, etag) {
+                                if (err) {
+                                    return console.log("上传到minio失败:" + err)
+                                }
+                                let fileUrl = fileName.startsWith('/') ? res.Data.ImgHost + fileName : res.Data.ImgHost + "/" + fileName
+                                resolve(fileUrl)
+                            })
+                        }
+                    })
+                }
+                if (exists) {
+                    // console.log("桶存在",res.Data.Bucketname);
                     let reader = new FileReader();
-                    // console.log(reader);
                     reader.readAsArrayBuffer(file);
                     reader.onloadend = function (e) {
                         const dataurl = e.target.result;
                         let bufferStream = new stream.PassThrough();
-                        // 转化成数据流  minio接受数据流格式
                         bufferStream.end(Buffer.from(dataurl))
-                        minioClient.putObject(res.Data.Bucketname, fileName, bufferStream, file.size, metaData, function (err, etag) {
+                        minioClient.putObject(res.Data.Bucketname, fileName, bufferStream, metaData, function (err, etag) {
                             if (err) {
-                                return console.log("上传到minio失败:" + err)
+                                console.log("上传到minio失败:" + err)
+                                return 
                             }
                             let fileUrl = fileName.startsWith('/') ? res.Data.ImgHost + fileName : res.Data.ImgHost + "/" + fileName
-                            return fileUrl
+                            //console.log('test',fileUrl)
+                            resolve(fileUrl)
                         })
                     }
-                })
-            }
-            if (exists) {
-                // console.log("桶存在",res.Data.Bucketname);
-                let reader = new FileReader();
-                console.log('reader',reader);
-                reader.readAsArrayBuffer(file);
-                reader.onloadend = function (e) {
-                    const dataurl = e.target.result;
-                    let bufferStream = new stream.PassThrough();
-                    bufferStream.end(Buffer.from(dataurl))
-                    minioClient.putObject(res.Data.Bucketname, fileName, bufferStream, metaData, function (err, etag) {
-                        if (err) {
-                            console.log("上传到minio失败:" + err)
-                            return 
-                        }
-                        let fileUrl = fileName.startsWith('/') ? res.Data.ImgHost + fileName : res.Data.ImgHost + "/" + fileName
-                        //console.log('test',fileUrl)
-                        return fileUrl
-                    })
                 }
+            })
+        } catch (error) {
+            console.error(error);
+            if (error.name !== "cancel") {
+                //不是取消上传的则给错误提示
+                console.log("上传失败,请刷新重试");
             }
-        })
-    } catch (error) {
-        console.error(error);
-        if (error.name !== "cancel") {
-            //不是取消上传的则给错误提示
-            console.log("上传失败,请刷新重试");
+            reject(error)
         }
-    }
+    })
 }
 
 //上传到s3