Java获取七牛云存储空间中图片外链
七牛云官方文档:https://developer.qiniu.com/kodo/sdk/java
如果有还不会使用SpringBoot整合七牛云存储的小伙伴们,可以跳转查看这篇文章:SpringBoot 整合七牛云上传图片
在最近的一个项目中,需要获取在七牛云中存储的所有图片,并返回外链地址,具体代码实现如下。
获取七牛云密钥
进入七牛云控制台
点击【头像】→【密钥管理】
创建密钥,复制保存,下面要用
导入依赖
- 从 7.2.24 开始,okhttp3 升级到 3.14.2,其要求 java 1.8 及以上。
- 若一定 java 1.7 ,请手动指定 okhttp3 依赖 3.12,要求 3.12.3 及以上,
com.squareup.okhttp3:okhttp:3.12.3
<!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk --> <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.11.0</version> </dependency>
编辑 YAML 配置文件
在配置文件中添加七牛云的一些参数:
#七牛云参数 qiniu: accessKey: IrgJ4tvtYwWMr # AK accessSecretKey: J-0wUai568ul7L # SK bucket: yunpicos # 空间 prefix: word/ # 文件名路径前缀,用于过滤,默认为空 domain: http://img.roman.top/ # 域名
添加七牛云配置类
封装七牛云需要的配置参数:
@Getter @Configuration public class QiNiuConfig { //七牛云 ak @Value("${qiniu.accessKey}") private String accessKey; //七牛云sk @Value("${qiniu.accessSecretKey}") private String secretKey; //指定七牛云空间 @Value("${qiniu.bucket}") private String bucket; //文件名路径前缀 @Value("${qiniu.prefix:}") private String prefix; //指定目录分隔符,列出所有公共前缀(模拟列出目录效果)。缺省值为空字符串 @Value("${qiniu.delimiter:}") private String delimiter; //七牛云空间的域名 @Value("${qiniu.domain:}") private String domain; }
编写 QiNiuImgUrls 方法
返回所有图片外链的集合,外链格式为【域名+文件路径】:
public List<String> imgUrls(){ //参数 String accessKey = qiNiuConfig.getAccessKey(); String secretKey = qiNiuConfig.getSecretKey(); String bucket = qiNiuConfig.getBucket(); String prefix = qiNiuConfig.getPrefix(); String delimiter = qiNiuConfig.getDelimiter(); String domain = qiNiuConfig.getDomain(); //构造一个带指定 Region 对象的配置类 Configuration cfg = new Configuration(Region.region0()); Auth auth = Auth.create(accessKey, secretKey); BucketManager bucketManager = new BucketManager(auth, cfg); //每次迭代的长度限制,最大1000,推荐值 1000 int limit = 1000; //列举空间文件列表 BucketManager.FileListIterator fileListIterator = bucketManager.createFileListIterator(bucket, prefix, limit, delimiter); while (fileListIterator.hasNext()) { //处理获取的file list结果 FileInfo[] items = fileListIterator.next(); //stream流过滤掉掉多余的元素,并将其余元素的所有文件路径和域名进行拼接,返回所有图片外链的集合 List<String> collect = Arrays.stream(items).filter(f -> !f.key.equals(prefix)).map(f -> domain+f.key).collect(Collectors.toList()); return collect; } return null; }
测试结果
返回对应空间下的所有图片的外链:
到此这篇关于Java获取七牛云存储空间中图片外链的文章就介绍到这了,更多相关Java获取七牛云图片外链内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码
这篇文章主要介绍了Java传入用户名和密码并自动提交表单实现登录到其他系统,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-01-01springboot 整合fluent mybatis的过程,看这篇够了
这篇文章主要介绍了springboot 整合fluent mybatis的过程,配置数据库连接创建数据库的详细代码,本文给大家介绍的非常详细,需要的朋友可以参考下2021-08-08线程池ThreadPoolExecutor使用简介与方法实例
今天小编就为大家分享一篇关于线程池ThreadPoolExecutor使用简介与方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-03-03java SpringBoot 分布式事务的解决方案(JTA+Atomic+多数据源)
这篇文章主要介绍了java SpringBoot 分布式事务的解决方案(JTA+Atomic+多数据源),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下2022-08-08
最新评论