个人博客(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;
    }
}
复制代码

三、总结

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

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



目录
相关文章
|
7月前
|
JSON JavaScript 文件存储
Python爬虫之文件存储#5
TXT文件存储、JSON文件存储、CSV文件存储【2月更文挑战第16天】
78 2
Python爬虫之文件存储#5
|
存储 弹性计算 开发工具
基于OSS搭建云上个人博客
阿里云OSS,可以托管静态网站,在这个实验中,我们将以Hexo静态博客为例,向您演示如何通过Hexo博客框架快速生成静态博客,以及如何使用Hexo插件将生成的静态博客自动部署至阿里云OSS。
|
存储 Kubernetes 算法
开源免费的对象存储Minio
Minio是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合存储大容量、非结构化的数据。例如,图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小的,从几KB到5TB不等。
1357 0
|
7月前
|
存储 数据安全/隐私保护 Docker
开源网盘程序,自建网盘指南
ShowTa是一款开源的个人和企业网盘程序,提供简洁界面和多种功能,如预览文件、在线播放视频、设置文件夹密码等。它支持Docker部署、WebDAV协议,可将网盘映射到本地磁盘,并能挂载阿里云盘。通过WebDAV,用户可在电视上观看阿里云盘内容。了解更多信息,请访问[GitHub](https://github.com/bosnzt/showta)和[演示地址](https://www.showta.cc)。
|
存储 Shell 对象存储
CSDN开发者云对象存储命令行工具
CSDN近期推出了开发者云服务,我对比了下各产品同其他云厂商之间的价格,开发者云的价格确实是相当香了,就拿我今天要讲的对象存储的价格为例,列举下各厂商1GB/月价格。
67 0
|
存储 弹性计算 缓存
【云存储】使用OSS快速搭建个人网盘教程(下)
【云存储】使用OSS快速搭建个人网盘教程(下)
937 0
|
存储 弹性计算 PHP
云存储Clouder认证:基于存储产品快速搭建网盘—课时9:基于文件存储NAS快速搭建网盘
云存储Clouder认证:基于存储产品快速搭建网盘—课时9:基于文件存储NAS快速搭建网盘
|
存储 弹性计算 安全
云存储Clouder认证:基于存储产品快速搭建网盘—课时8:文件存储NAS入门
云存储Clouder认证:基于存储产品快速搭建网盘—课时8:文件存储NAS入门
|
存储 弹性计算 开发工具
云存储Clouder认证:基于存储产品快速搭建网盘—课时7:基于对象存储OSS快速搭建网盘
云存储Clouder认证:基于存储产品快速搭建网盘—课时7:基于对象存储OSS快速搭建网盘
|
存储 弹性计算 Linux
【云存储】使用OSS快速搭建个人网盘教程(上)
【云存储】使用OSS快速搭建个人网盘教程(上)
1540 0