从oss桶下的目录获取图片url信息,并导入数据库

 @Override
    public TableDataInfo<SpeciesDictionaryVo> queryPageList(SpeciesDictionaryBo bo, PageQuery pageQuery) {
        List<SpeciesDictionaryVo> speciesDictionaryVos = baseMapper.selectVoList(null);

        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "kyoeis-yunpintai";
        // 指定前缀,例如exampledir/object。
        String keyPrefix = "speciesDictionary/";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, "LTAI5t9zoxyVhzQwBSY1EHQC","jzY2VBnXsaP1w3XuMqVTbmhwl6h0tD");

        // 存储所有图片URL
        List<String> imageUrls = new ArrayList<>();
        try {
            // 列举文件。如果不设置keyPrefix,则列举存储空间下的所有文件。如果设置keyPrefix,则列举包含指定前缀的文件。
            ObjectListing objectListing = ossClient.listObjects(bucketName, keyPrefix);
            objectListing.setMaxKeys(500);
            List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
            for (OSSObjectSummary s : sums) {
                String objectKey = s.getKey();
                System.out.println(s.getLastModified()+""+s.getBucketName());
                // 假设此处使用简单的方式判断是否为图片,实际应用中可能需要更复杂的逻辑(如检查MIME类型)
                if (objectKey.endsWith(".jpg") || objectKey.endsWith(".png")) {
                    String imageUrl = "https://" + bucketName + "." + "oss-cn-hangzhou.aliyuncs.com" + "/" + objectKey;
                    System.out.println(objectKey);

                    String[] split = objectKey.split("/");
                    String[] split1 = split[1].split("\\.");
                    System.out.println(split1[0]);

                    for (SpeciesDictionaryVo speciesDictionaryVo : speciesDictionaryVos) {
                        if(speciesDictionaryVo.getSpeciesChineseName().equals(split1[0])){
                            speciesDictionaryVo.setSpeciesImageUrl(imageUrl);
                            System.out.println(speciesDictionaryVo.getSpeciesImageUrl());
                            SpeciesDictionary bean = BeanUtil.toBean(speciesDictionaryVo, SpeciesDictionary.class);
                            LambdaQueryWrapper<SpeciesDictionary> lambdaQueryWrapper = new LambdaQueryWrapper<>();
                            lambdaQueryWrapper.eq(SpeciesDictionary::getId,bean.getId());
                            baseMapper.update(bean,lambdaQueryWrapper);

                        }
                    }
                }
            }
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                + "a serious internal problem while trying to communicate with OSS, "
                + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }

        return TableDataInfo.build(speciesDictionaryVos);
    }

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值