Java 获取七牛云存储空间中的所有图片列表

news2024/11/26 15:40:38

文章目录

    • 获取七牛云密钥
    • 导入依赖
    • 编辑 YAML 配置文件
    • 添加七牛云配置类
    • 编写 QiNiuImgUrls 方法
    • 测试结果

七牛云官方文档:https://developer.qiniu.com/kodo/sdk/java

如果有还不会使用SpringBoot整合七牛云存储的小伙伴们,可以跳转查看这篇文章:SpringBoot 整合七牛云上传图片_I’m Jie的博客-CSDN博客

在最近的一个项目中,需要获取在七牛云中存储的所有图片,并返回外链地址,具体代码实现如下。

获取七牛云密钥

  1. 进入七牛云控制台

    image-20220131212145277

  2. 点击【头像】→【密钥管理】

    image-20220131212100619

  3. 创建密钥,复制保存,下面要用

    image-20220131212314100

导入依赖

  • 从 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;
}

测试结果

返回对应空间下的所有图片的外链:

image-20230609152419286

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Revit中如何画弯曲的轴网和显示实时轴号?

一、Revit中如何画弯曲的轴网 生活中&#xff0c;有很多圆筒样式的建筑&#xff0c;比如说鸟巢和土楼&#xff0c;他们的外壁是弯曲的。所以&#xff0c;当我们用Revit创建这类模型时&#xff0c;轴网就要画弯曲的&#xff0c;那么&#xff0c;Revit中如何画弯曲的轴网呢&#…

JMeter接口压测和性能监测

引言 今天我来和大家分享一篇关于JMeter接口压测和性能监测的文章。在现代互联网时代&#xff0c;应用程序的性能已经成为了一个非常重要的问题&#xff0c;并且对于许多公司的生存和发展都起着至关重要的作用。 而在这其中&#xff0c;JMeter是一个非常实用的工具&#xff0…

CSAPP - AttackLab实验(阶段1-5)

AttackLab实验 实验内容 官网&#xff1a;http://csapp.cs.cmu.edu/3e/labs.html “AttackLab”是一个Linux下的可执行C程序&#xff0c;包含了5个阶段&#xff08;phase1~phase5&#xff09;的不同内容。程序运行过程中&#xff0c;要求学生能够根据缓冲区的工作方式和程序…

【Flutter】如何移除 Flutter 右上角的 DEBUG 标识

文章目录 一、前言二、什么是 DEBUG 标识三、为什么我们需要移除 DEBUG 标识四、如何移除 DEBUG 标识五、完整代码六、总结 一、前言 欢迎来到 Flutter 的世界&#xff01;在这篇文章中&#xff0c;我们将探索 Flutter 的一些基础知识。但是&#xff0c;你知道吗&#xff1f;这…

Science:“消除噪音”量子比特实现了纠错的重大突破

光子盒研究院 在《科学》杂志的一篇新论文中&#xff0c;芝加哥大学普利兹克分子工程学院Hannes Bernien助教实验室的研究人员描述了一种不断监测量子系统周围噪音并实时调整量子比特以减少误差的方法——他们引入了“旁观者量子比特(spectator qubit)”。 尽管他们有解决新型问…

数字图像处理实验报告

目录 实验二、图像在空间域上的处理方法 实验三、图像在频率域上的处理方法 实验二、图像在空间域上的处理方法 一、实验目的 了解图像亮&#xff08;灰&#xff09;度变换与空间滤波的意义和手段&#xff1b;熟悉图像亮&#xff08;灰&#xff09;度变换与空间滤波的MATLA…

买法拍房需要注意什么

法拍房&#xff0c;由于其价格亲民、房屋信息透明度高、竞拍过程公平公正而受到越来越多的人开始关注。但是其中又有着许多的风险及相关的注意事项。那么&#xff0c;如何做到成功“捡漏”&#xff0c;买法拍房需要注意什么呢? 买法拍房需要注意什么 1、隐藏的各种收费 税费&a…

优思学院|质量和可靠性是同一件事吗?

什么是质量&#xff1f; 质量是什么&#xff1f;早期的定义是“整体上用来决定产品或服务能否满足使用目的之固有性质与性能总合”&#xff0c;换言之&#xff0c;质量就是“可显示出品质与服务好坏的东西”。 不过&#xff0c;关于质量的想法随时代变化&#xff0c;有范围愈…

专访:诺奖得主Alain Aspect谈量子的挑战与未来

光子盒研究院出品 近期&#xff0c;诺贝尔物理学奖获得者Alain Aspect在接受电子工程专辑(EE Times Europe)采访时说&#xff1a;“诺贝尔奖是由于显示了纠缠的非凡特性而获得的&#xff0c;但我还研究了许多其他惊人的量子现象&#xff0c;包括将原子冷却到一光子反冲力以下。…

JavaWebHtmlCSS总结

目录 JavaWeb概述1.访问web的原理2.C/S软件和B/S软件区别3.静态网站和动态网站 HTMLHTML的概述Table表格详细用法见W3CSchool.chm合并单元格课程表 img标签table和img标签组合使用a标签表单表单Get提交和post提交 div和span CSS1.CSS概述2.CSS语法3.CSS三种写法行内样式内部样式…

专访泛境科技:如何借助3DCAT实时云渲染打造元宇宙解决方案

随着5G、VR/AR等技术的发展&#xff0c;元宇宙&#xff08;Metaverse&#xff09;这一概念越来越受到关注。元宇宙是一个由虚拟世界构成的网络空间&#xff0c;其中人们可以通过数字化的身份和形象进行各种社交、娱乐、创作和商业活动。元宇宙的核心是虚拟场景&#xff0c;它是…

教育信息化时代,如何打造中学理科信息化实验操作考场方案

近年来&#xff0c;我国考试招生制度不断改进完善&#xff0c;初步形成了相对完整的考试招生体系。但随着教育事业的逐步发展&#xff0c;国务院明确提出了改革考试形式和内容&#xff1a;完善中学学业水平考试&#xff0c;规范中考学生综合素质评价&#xff0c;加快推进中学院…

Promise.allSettled优化并行接口报错

问题背景 后端需要前端请求同一个接口三次&#xff0c;每次传参不同可以获取到不同的结果>构成计算资源的选项。 其中一个接口传参获取数据报错&#xff0c;导致整个计算资源都没有可选择的options&#xff1a; 前端代码使用Promise.all获取res1, res2, res3返回结果&…

云原生docker-cgroup资源限制

概述 Docker 通过 Cgroup 来控制容器使用的资源配额&#xff0c;包括 CPU、内存、磁盘三大方面&#xff0c; 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 ControlGroups 的缩写&#xff0c;是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 CPU、…

【剑指offer】调整数组顺序使奇数位于偶数前面

文章目录 题目思路相对位置可以改变的思路相对位置不能改变的思路 题目 题目链接入口&#xff1a;调整数组顺序使奇数位于偶数前面 示例1&#xff1a; 输入&#xff1a;[1,2,3,4,5,6] 结果&#xff1a;[1,3,5,2,4,6] 示例2&#xff1a; 输入&#xff1a;[1,2,2,3,4,4,5,6,7…

2023年前端面试高频考点之 通信(渲染、http、缓存、异步、跨域)

目录 浏览器从输入url到渲染页面 过程⭐⭐⭐ Http和Https区别⭐⭐⭐ GET和POST发送请求⭐⭐⭐ 异同 http版本⭐⭐⭐ http状态码⭐⭐⭐ TCP⭐⭐⭐ 三次握手 四次挥手 流量控制&#xff08;滑动窗口机制&#xff09; 拥塞控制 keep-alive持久连接 TCP⭐⭐⭐ 三次握手…

Revit中绘制多坡度的迹线屋顶和构件对齐

一、Revit中创建特殊多坡度的迹线屋顶 在我们的日常生活中可以见到一些建筑屋顶为偏欧式风格的屋顶&#xff0c;而有时候在做迹线屋顶时也需要作出如图一所示的效果&#xff0c;说明特殊的多坡度屋顶也是应用非常广泛的&#xff0c;那我们应该如何实现绘制呢? 1.要得到如上图所…

Linux系统:安装及管理程序

安装及管理程序 一、linux源码包&#xff1a;1.源码包&#xff1a;2.二进制包&#xff1a;3.源码包的好处&#xff1a;4.源码包不足&#xff1a; 二、编译安装的过程&#xff1a;1.重点步骤&#xff1a; 三、挂载1.格式&#xff1a;2.挂载规则&#xff1a; 四、应用程序和系统命…

使用Jmeter进行性能测试的这套步骤,涨薪2次,升职一次

项目背景&#xff1a; 我们的平台为全国某行业监控平台&#xff0c;经过3轮功能测试、接口测试后&#xff0c;98%的问题已经关闭&#xff0c;决定对省平台向全国平台上传数据的接口进行性能测试。 01、测试步骤 1、编写性能测试方案 由于我是刚进入此项目组不久&#xff0c…

2023年专业连锁行业研究报告

第一章 行业概况 专业连锁行业是指以连锁经营模式运营的公司&#xff0c;其主要业务涵盖零售、餐饮、酒店、医疗、教育等领域。这些公司通过规模化、标准化的经营模式和供应链管理&#xff0c;提供专业化、高质量的产品和服务。专业连锁行业在全球范围内蓬勃发展&#xff0c;并…