java 重新将本地的附件批量上传到minion服务器上,并保存到数据库表中

java 框架:springcloud 框架

操作步骤和方法:

在pom文件中添加依赖
 //在pom文件中添加minion 依赖
 		 <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>7.1.2</version>
         </dependency>


在代码中注入工具类
    @Autowired
    private MinioClient minioClient;
具体实现代码
// 明确本地附件的位置
 String filePath = "E:/work/word/IPaddress/";
        //从数据库中查询需要上传附件对应的数据
        List<FileName> list = mapper.getFileInfo();
        if (list != null && list.size()>0){
            for (int i = 0; i < list.size(); i++) {
                //IP地址
                //1. 获取数据库中数据- 这里是拿到需要上传附件的IP地址
                String zhLabel = list.get(i).getZhLabel();
                // 原有的附件路径
                String path = list.get(i).getFilePath();
                // 原有的附件名称
                String name = list.get(i).getFileName();
                //2. 获取本地系统文件中的文件路径
                String pathName = filePath+path;
                //3. 去掉本地文件中的文件的后缀名
                String files=pathName.substring(0,pathName.lastIndexOf("."));
                //4. 获取系统中存储的文件后缀名
                String nameFile = name.substring(name.lastIndexOf(".")+1);
                //5. 将本地路径中的问你件名+数据库中的存储文件类型 组合为新的文件
                String uploadFile = files+"."+nameFile;
                //6. 将数据库中存储的文件路径 截取最后一个/ 后的数据  xx.file
                String image = path.substring(path.lastIndexOf("/")+1);
                //7. 拿到存储路径中的文件名
                String fi=image.substring(0,image.lastIndexOf("."));
                //获取文件路径和文件
                log.info("=====IP地址===="+zhLabel);
                log.info("=====IP地址路径===="+uploadFile);
                //以上拿到附件
                //下面开始上传附件  需要使用表存数据做关联  VIM_SYS_YN.BPM_ATTACHMENT
                //最后拿到的文件名
                String intId = snowFlakeIdGenerator.nextId()+"";
                String fileName=fi+"."+nameFile+"-"+intId;
                File file=new File(uploadFile);
                FileInputStream fis=null;
                try {
                    fis=new FileInputStream(file);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
                try {
                //使用minion上传  
                    this.minioClient.putObject((PutObjectArgs)((PutObjectArgs.Builder)((PutObjectArgs.Builder)PutObjectArgs.builder().bucket("filebucket")).object(fileName)).stream(fis, file.length(), 52428800L).build());
                } catch (ErrorResponseException e) {
                    e.printStackTrace();
                } catch (InsufficientDataException e) {
                    e.printStackTrace();
                } catch (InternalException e) {
                    e.printStackTrace();
                } catch (InvalidBucketNameException e) {
                    e.printStackTrace();
                } catch (InvalidKeyException e) {
                    e.printStackTrace();
                } catch (InvalidResponseException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (NoSuchAlgorithmException e) {
                    e.printStackTrace();
                } catch (ServerException e) {
                    e.printStackTrace();
                } catch (XmlParserException e) {
                    e.printStackTrace();
                }
                //添加到数据库
                //修改数据 ip_addr_line
                try {
                    String status = "0";
                    //修改数据状态
                    mapper.update11(zhLabel,status);
                    mapper.updateInfoByZhlabel(zhLabel,fi);
                    log.info("=======数据信息======"+zhLabel);
                    //存入记录表 VIM_SYS_YN.BPM_ATTACHMENT
                    String saveType = "minio";
                    String num = "0";
                    mapper.insert(intId,name,fileName,num,fi,saveType);
                } catch (Exception e) {
                    e.printStackTrace();
                    log.info("=======异常========"+zhLabel);
                }
            }
        }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值