JS客户端下载MinIO保存的文件
Posted 科睿思博[Mikechang]
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS客户端下载MinIO保存的文件相关的知识,希望对你有一定的参考价值。
js 在客户端下载MinIO的文件
特别要注意一点:
accessKey,secretKey长度小于20时,在js中无法访问MinIO服务器
/* 下载文档 */ async downLoad(row){ let data={ id:row.id, requestType:2 // } let boolean=await(this.judge(data)); if(boolean){ dir.look({ id: row.id }).then(res =>{ let resData = res.data.data; let docUrl=""; if (resData !== null && resData.docUrl !== null) { console.log(\'docUrl\',resData.docUrl) docUrl = resData.docUrl; }else if(resData !== null && resData.pdfUrl !== null){ console.log(\'pdfUrl\',resData.pdfUrl) docUrl = resData.pdfUrl; }else{ this.$message.info("该文档暂时不可下载!") return; } console.log("minio"); var minioClient = new Minio.Client({ endPoint: \'localhost\', port: 9000, useSSL: false, accessKey: \'XXXXXX\', secretKey: \'XXXXXX\' }); // let filename=row.docName; // let filepath=docUrl.substring(docUrl.indexOf(\'upload/\')); // let fileExtension=row.suffix; let filename="APS排产器产品原型常爱平"; let filepath="1212121.pdf" let fileExtension="pdf"; let list=new Array(); var size = 0; minioClient.getObject(\'bladex\', filepath, function(err,dataStream) { if (err) { return console.log(err) } dataStream.on(\'data\', function(chunk) { size += chunk.length list.push(chunk); }) dataStream.on(\'end\', function() { console.log(\'End. Total size = \' + size); let u8arr = new Uint8Array(size) let u8arrindex=0; for(let i=0;i<list.length;i++){ for(let j=0;j<list[i].length;j++){ u8arr[u8arrindex]=list[i][j]; u8arrindex=u8arrindex+1; } } let filetype=""; switch(fileExtension) { case \'pdf\': filetype="application/pdf;charset=utf-8"; break; case \'txt\': filetype="text/plain;charset=utf-8"; break; case \'xls\': filetype="application/x-xlw;charset=utf-8"; break; case \'doc\': filetype="application/msword;charset=utf-8"; break; case \'jpg\': filetype="image/jpeg;charset=utf-8"; break; case \'png\': filetype="image/png;charset=utf-8"; break; case \'ppt\': filetype="application/x-ppt;charset=utf-8"; break; } var file = new File([u8arr], "", { type: filetype }); FileSaver.saveAs(file,filename+"."+fileExtension); }) dataStream.on(\'error\', function(err) { console.log(err) }) }); }) }else{ this.ifApply=true; this.applyType="下载"; } },
以上是关于JS客户端下载MinIO保存的文件的主要内容,如果未能解决你的问题,请参考以下文章