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保存的文件的主要内容,如果未能解决你的问题,请参考以下文章

使用Java写一个minio的客户端上传下载文件

Linux系统下安装minio并设置SSL证书进行HTTPS远程连接访问

Java编程系列Minio实现文件上传下载

Java编程系列Minio实现文件上传下载

Java编程系列Minio实现文件上传下载

minio分布式存储真香,还不赶快了解下?