|
@@ -1,10 +1,12 @@
|
|
|
// 上传文件到阿里云oss
|
|
|
import OSS from 'ali-oss'
|
|
|
import {apiGetOSSSign} from '@/api/common'
|
|
|
-/* import { createRequire } from 'module'
|
|
|
-const require = createRequire(import.meta.url)
|
|
|
-const Minio = require('minio')
|
|
|
+/* const Minio = require('minio')
|
|
|
const stream = require('stream') */
|
|
|
+import * as Minio from 'minio-es'
|
|
|
+import * as stream from 'stream'
|
|
|
+import * as buffer from 'buffer'
|
|
|
+const Buffer = buffer.Buffer
|
|
|
|
|
|
/**
|
|
|
* 上传到oss
|
|
@@ -66,6 +68,18 @@ export async function useUploadFileToOSS(data,fileName,isMultipart=false){
|
|
|
return resUrl
|
|
|
}
|
|
|
|
|
|
+//vite 不支持Buffer 代替Buffer.form方法
|
|
|
+const toBinary = (data)=>{
|
|
|
+ const length = data.length
|
|
|
+ let buf = new ArrayBuffer(length)
|
|
|
+ let view = new Uint8Array(buf)
|
|
|
+ for(let i=0;i<length;++i){
|
|
|
+ view[i] = data[i]
|
|
|
+ }
|
|
|
+ let blob = new Blob([buf],{type:'application/x-tra'})
|
|
|
+ const url = URL.createObjectURL(blob)
|
|
|
+ return url
|
|
|
+}
|
|
|
//上传到minio
|
|
|
// minio sdk 文档 https://min.io/docs/minio/linux/developers/javascript/API.html
|
|
|
export async function useUploadToMinIO (file, fileName, options = {}){
|
|
@@ -111,7 +125,9 @@ export async function useUploadToMinIO (file, fileName, options = {}){
|
|
|
let bufferStream = new stream.PassThrough();
|
|
|
// 转化成数据流 minio接受数据流格式
|
|
|
bufferStream.end(Buffer.from(dataurl))
|
|
|
+ //bufferStream.end(toBinary(dataurl))
|
|
|
// console.log(bufferStream);
|
|
|
+ const bufferUrl = toBinary(dataurl)
|
|
|
minioClient.putObject(res.Data.Bucketname, fileName, bufferStream, file.size, metaData, function (err, etag) {
|
|
|
if (err) {
|
|
|
return console.log("上传到minio失败:" + err)
|
|
@@ -125,19 +141,21 @@ export async function useUploadToMinIO (file, fileName, options = {}){
|
|
|
if (exists) {
|
|
|
// console.log("桶存在",res.Data.Bucketname);
|
|
|
let reader = new FileReader();
|
|
|
- console.log(reader);
|
|
|
+ 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))
|
|
|
+ //bufferStream.end(toBinary(dataurl))
|
|
|
+ const bufferUrl = toBinary(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
|
|
|
})
|
|
|
}
|