个人博客(9、使用七牛云作为文件存储工具)

简介: 个人博客(9、使用七牛云作为文件存储工具)

一、前言

简略版博客后端只剩下文件模块没有完成了,本项目使用七牛云作为文件存储工具,减轻服务器压力。

二、对接七牛云

七牛云官方文档地址

七牛云官方文档(java)

七牛云令牌key和要保存图片的空间名称

网络异常,图片无法展示
|

网络异常,图片无法展示
|

pom引入七牛云依赖

<!-- 七牛云 -->
<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>7.7.0</version>
</dependency>
复制代码

七牛云demo()

简单地写了一下,因为现在七牛云文件存储要有域名,我还没有申请,所以只是简单的写了一下,新申请的七牛云账号有三十天的临时域名可以测试使用,可是我的让我给浪费了。。。

@PostMapping
@ApiOperation("新增")
public ResultVo insert(File fileDto, MultipartFile file) throws IOException {
    // 文件名
    String originalFilename = file.getOriginalFilename();
    // 文件流
    InputStream inputStream = file.getInputStream();
    String upload = qiNiuUtils.upload(file);
    fileDto.setUrl(upload);
    fileService.save(fileDto);
    return new ResultVo();
}
复制代码
package com.ningxuan.blog.util;
import com.google.gson.Gson;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
/**
 * 七牛云文件处理
 *
 * @Author ningxuan
 * @Date 2022/8/10 23:32
 */
@Component
public class QiNiuUtils {
    private String accessKey;
    private String secretKey;
    private String bucket;
    @Value("#{qiniu.accessKey}")
    public void setAccessKey(String accessKey) {
        this.accessKey = accessKey;
    }
    @Value("#{qiniu.scret}")
    public void setSecretKey(String secretKey) {
        this.secretKey = secretKey;
    }
    @Value("#{qiniu.bucket}")
    public void setBucket(String bucket) {
        this.bucket = bucket;
    }
    public  String upload(MultipartFile file) {
        //构造一个带指定 Region 对象的配置类
        Configuration cfg = new Configuration(Region.region0());
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //默认不指定key的情况下,以文件内容的hash值作为文件名
        //TODO 待完善,随机字符串拼接文件名,避免重复
        String key = file.getOriginalFilename();
        try {
            byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");
            ByteArrayInputStream byteInputStream = new ByteArrayInputStream(uploadBytes);
            Auth auth = Auth.create(accessKey, secretKey);
            String upToken = auth.uploadToken(bucket);
            Response response = uploadManager.put(file.getInputStream(), key, upToken, null, null);
            //解析上传成功的结果
            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
        } catch (Exception ex) {
            //ignore
        }
        return key;
    }
}
复制代码

三、总结

简单的对接了一下七牛云的文件上传功能,对于图片和视频七牛云还有其他的接口可以把玩把玩,例如给图片添加水印什么的

接下来就要开搞前端的内容了,更的会细一点,毕竟虽然不是从零开始,但是也差不太多了



目录
相关文章
|
3月前
|
JSON JavaScript 文件存储
Python爬虫之文件存储#5
TXT文件存储、JSON文件存储、CSV文件存储【2月更文挑战第16天】
41 2
Python爬虫之文件存储#5
|
10月前
|
存储 运维 监控
阿里云的文件存储NAS使用心得
阿里云的文件存储NAS使用心得
255 0
|
存储 安全 数据管理
阿里云OSS图床搭建
阿里云OSS图床搭建
7513 3
|
10月前
|
存储 机器学习/深度学习 弹性计算
阿里云文件存储NAS简介和购买流程
阿里云文件存储NAS是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。兼容POSIX文件接口,可支持上千台弹性计算ECS、容器服务ACK等计算节点共享访问,您无需修改应用程序,即可无缝迁移业务系统上云。 支持智能冷热数据分层,有效降低数据存储成本。广泛应用于企业级应用数据共享、容器、AI机器学习、Web 服务和内容管理、应用程序开发和测试、媒体和娱乐工作流、数据库备份等场景。
|
存储 API 开发工具
使用阿里云对象存储OSS+PicGo搭建图床
使用阿里云对象存储OSS+PicGo搭建图床
5188 0
使用阿里云对象存储OSS+PicGo搭建图床
|
6月前
|
存储 Shell 对象存储
CSDN开发者云对象存储命令行工具
CSDN近期推出了开发者云服务,我对比了下各产品同其他云厂商之间的价格,开发者云的价格确实是相当香了,就拿我今天要讲的对象存储的价格为例,列举下各厂商1GB/月价格。
40 0
|
8月前
|
存储 弹性计算 PHP
云存储Clouder认证:基于存储产品快速搭建网盘—课时9:基于文件存储NAS快速搭建网盘
云存储Clouder认证:基于存储产品快速搭建网盘—课时9:基于文件存储NAS快速搭建网盘
196 0
|
8月前
|
存储 弹性计算 安全
云存储Clouder认证:基于存储产品快速搭建网盘—课时8:文件存储NAS入门
云存储Clouder认证:基于存储产品快速搭建网盘—课时8:文件存储NAS入门
198 0
|
8月前
|
存储 Java 应用服务中间件
七牛云和阿里云OSS存储图片服务器使用
七牛云和阿里云OSS存储图片服务器使用
1252 0
|
8月前
|
存储 弹性计算 开发工具
云存储Clouder认证:基于存储产品快速搭建网盘—课时7:基于对象存储OSS快速搭建网盘
云存储Clouder认证:基于存储产品快速搭建网盘—课时7:基于对象存储OSS快速搭建网盘
232 0