调用七牛云对象存储,附工具类
一、前言
最近在研究七牛云的对象存储,这里做个记录。
这里通过 Java 的方式进行调用。
记得备案个域名,七牛云提供的测试域名只有三十天。
二、准备
1、注册账号
先到官网注册

2、新建空间

存储空间的名称自定义,我这里创建了一个名为 test-south 的空间
地域自行选择,一般选择离自己所在地近的
访问控制根据自己的情况选择,我这里选择私有

创建成功后会给个测试域名,期限三十天,也可以绑定自己备案过的域名
这里使用测试域名
3、查询密钥


接下来就可以写代码了
三、对接
1、查询文档
这里以Java为例,点击跳转到文档地址

2、引入依赖
这里使用 maven 依赖
<!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk -->
<!-- 七牛云 相关依赖-->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.18.0</version>
</dependency>
可以通过上面的地址查询七牛云最新的依赖。
3、测试
这里只展示测试结果,完整代码放在了“四、工具类”中。
(1)、上传文件
这里上传一张名为 cat 的 jpg 图片

返回结果:
{
"hash": "FgOnal_VoXYb26Jgz_kSHlD_9Z5c",
"key": "FgOnal_VoXYb26Jgz_kSHlD_9Z5c"
}
在未定义 key 的情况下,会把 hash 值作为 key ,也就是上传文件的名称
key 比较重要,后面下载文件,查询文件信息都需要用到

试试设置 key 的情况,这里上传一张名为 dog 的 jpg 图片,设置 key 为 dog_1746500488

返回结果:
{
"hash": "Fp2JgR9tjBRN8wp62qIWPiKpeCWm",
"key": "dog_1746500488"
}
可以看到 key 就是自定义的 key ,再看看文件名称

文件名称也自定义了。
需要注意的是,如果上传多张相同的图片,不定义 key 的情况下会将前面的文件覆盖
比如我不定义 key ,再次上传名为 cat 的 jpg 图片

返回结果如下:
{
"hash": "FgOnal_VoXYb26Jgz_kSHlD_9Z5c",
"key": "FgOnal_VoXYb26Jgz_kSHlD_9Z5c"
}
可以看到 key 没有变

文件记录也没有变成三条
那定义一个 key ,再次上传试试

返回结果如下:
{
"hash": "FgOnal_VoXYb26Jgz_kSHlD_9Z5c",
"key": "cat_1746501399"
}
可以看到返回的 key 变了

文件记录也变成了三条
(2)、下载文件
这里的下载文件是返回一条文件预览链接,而不是写出文件到本地
下载文件需要上传文件返回的 key ,这里拿到上传第一个文件的 key 为例

可以看到已经返回了文件的链接

文件设置了期限,有效期为一小时,后面可以根据自己的需要修改
(3)、查询文件信息

返回结果如下:
{
"fsize": 68089,
"putTime": 17465001919308162,
"mimeType": "image/jpeg",
"type": 0,
"hash": "FgOnal_VoXYb26Jgz_kSHlD_9Z5c",
"md5": "2ba6601bc542241165c91fec3c5a88f1",
"status": 0
}
感觉这个接口的作用比较有限。。
四、工具类
1、配置类
package com.zsp.demo.qiniu.dto;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* 七牛云配置
*
* @author: gan
* @date: 2025-04-30 11:52
*/
@Data
public class QiniuConfig {
/**
* AccessKey
*/
@JSONField

最低0.47元/天 解锁文章
3242

被折叠的 条评论
为什么被折叠?



