|
@@ -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
|