@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); }
从oss桶下的目录获取图片url信息,并导入数据库
最新推荐文章于 2024-05-06 10:37:06 发布