SpringBoot OSS单文件上传方法

SpringBoot整合阿里云OSS上传文件 一、需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写的是基于阿里云的。 二:环境搭建 我这里是用的Springboot.Thymeleaf插件,为了在html页面实现文件上传功能。 1、首先开通阿里云OSS存储,这里不多说了。 2、创建一个Bucket 这个bucket名称是等下参数里面要用到的。区域可以选择你那边的区域。 3、创建好之后返回刚才的页面,点击 阅读详情

1.第一个依赖的工具类

	@Component
	public class AliyunCloudPriBucketUrlUtil {	
    //阿里云绑定的域名
    @Value("${oss.aliyun-domain}")
    private String aliyunDomain;
    //阿里云路径前缀
    @Value("${oss.aliyun-prefix}")
    private String aliyunPrefix;
    //阿里云EndPoint
    @Value("${oss.aliyun-end-point}")
    private String aliyunEndPoint;
    //阿里云AccessKeyId
    @Value("${oss.aliyun-access-key-id}")
    private String aliyunAccessKeyId;
    //阿里云AccessKeySecret
    @Value("${oss.aliyun-access-key-secret}")
    private String aliyunAccessKeySecret;
    //阿里云BucketName
    @Value("${oss.aliyun-bucket-name}")
    private String aliyunBucketName;
    //阿里云url签名过期时间
    @Value("${oss.expiration}")
    private Integer expiration;

    /**
     * 获取阿里云OSS私有BUCKET的外链(URL加签方式)
     */
    public String getUrlBySign(String fileUrl) {
        OSSClient ossClient = new OSSClient(aliyunEndPoint, aliyunAccessKeyId,
                aliyunAccessKeySecret);
        // 设置URL过期时间为1小时
        Date expirationDate = new Date(new Date().getTime() + expiration * 1000);
        String subStr = aliyunDomain + "/";
        String urlKey = fileUrl.substring(subStr.length());
        GeneratePresignedUrlRequest generatePresignedUrlRequest ;
        generatePresignedUrlRequest = new GeneratePresignedUrlRequest(aliyunBucketName, urlKey);
        generatePresignedUrlRequest.setExpiration(expirationDate);
        URL url = ossClient.generatePresignedUrl(generatePresignedUrlRequest);
        return url.toString();
    }
}

2.第二个依赖的工具类

@Component
public class OSSFactory {
    @Autowired
    private CloudStorageConfig config;

    public CloudStorageService build() {
        if (config.getType().equals(OSSConstant.TYPE_QINIU)) {
            return new QiniuCloudStorageService(config);
        } else if (config.getType().equals(OSSConstant.TYPE_ALIYUN)) {
            return new AliyunCloudStorageService(config);
        } else if (config.getType().equals(OSSConstant.TYPE_QCLOUD)) {
            return new QcloudCloudStorageService(config);
        }
        return null;
    }

}

3.第三个依赖的配置类

public class OSSConstant {
    //类型 1:七牛  2:阿里云  3:腾讯云
    public final static Integer TYPE_QINIU = 1;
    pub
SpringBoot集成阿里云OSS图片上传 简述 最近做的公司项目,图片比较多,不想给其存储到自己服务器上,就买了阿里云的OSS服务器来哦进行存储,其实集成第三方平台,一般没什么难度,当然,你要仔细看对方的API文档,这篇主要说一下个人集成OSS的过程 步骤 1、pom.xml中添加OSS的SDK <!-- 图片上传 SDK 阿里云oss --> <dependency> <groupId>c... 阅读详情

相关推荐

SpringBoot整合OSS存储

OSS存储与COS存储对比,springboot整合OSS存储笔记

小凯的博客 5356

springboot使用阿里oss实现文件上传

阿里云对象存储服务(OSS)是安全可靠、成本低廉的云存储服务。其文件上传功能简单易用,适用范围广。通过简单 API 调用或图形化管理工具,个人开发者能轻松上传小文件,企业也能高效完成海量数据批量上传。并且它支持 Windows、Linux 等常见操作系统,以及 Java、Python 等主流编程语言,方便在不同环境集成。上传速度快、响应及时

qq_64734490的博客 1811

SpringBoot通过OSS实现大文件分片上传

最近工作中有使用到OSS的分片上传API,整体流程就是前端将大文件进行分割,每个分片大小是5MB,分片个数是:(文件大小/分片大小),前端多线程处理上传分片到后端,后端接收到分片后调用OSS验证是否存在接口校验之前有没有传输过(后端集群式部署的时候这个步骤非常关键),如果分片在OSS上不存在则调用分片上传API进行上传,所有分片上传完成后调用OSS分片合并API,将所有分片在OSS上合并为我们最初的大文件,特此记录便于日后查阅。 注:本文只介绍后端分片校验、上传、整合部分,前端大文件分割代码请移步另一篇文

专注基础架构领域 4993

阿里云OS依赖jar包

阿里云OS依赖jar包,上传文件到OS,从OS下载文件到本地.

《童虎学习笔记》5分钟用Keepalived搭建MySQL高可用实现虚ip自动漂移

1

tonghu_note的博客 5618

深入浅出:使用Python爬取链家二手房数据

在数据驱动的时代,房地产数据作为社会经济的重要指标,一直是数据分析师、投资者和研究人员关注的焦点。链家作为国内领先的房产中介平台,其二手房数据具有较高的真实性和时效性。然而,官方API的访问限制和数据获取的门槛,让很多初学者望而却步。本文将带你从零开始,使用Python编写一个符合robots.txt规范的链家二手房爬虫,获取标题、户型、价格等信息。文章不仅会提供完整代码,还会深入讲解反爬策略、请求头伪装、数据解析、异常处理等实战技术。目录前言:为什么要写这篇博客?一、爬虫前的准备:法律与道德。

2201_76125261的博客 92

YOLO26改进策略【YOLO和Mamba】| CVPR 2025:EfficientViM 压缩隐藏状态空间进行通道混合、单头设计减少内存操作,提升目标检测效率与精度

本文记录的是利用模块优化的目标检测网络模型。EfficientViM Block(基于隐藏状态混合器的状态空间对偶性模块) 的设计旨在,提升特征提取效率,同时兼顾全局依赖捕捉与局部细节保留。本文将深入研究的原理,并将其应用到中,通过重构特征提取流程、减少内存绑定操作、融合多阶段特征,增强模型在资源受限环境下的检测性能与速度。EfficientViM: Efficient Vision Mamba with Hidden State Mixer based State Space DualityEfficie

Limiiiing的博客 401

自然语言处理之机器翻译:Transformer:Transformer在低资源语言翻译中的应用

Transformer模型是自然语言处理领域的一个重要突破,由Vaswani等人在2017年的论文《Attention is All You Need》中提出。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)的序列依赖性,采用自注意力机制(Self-Attention)处理输入序列,极大地提高了训练效率和模型性能。

zhubeibei168的博客 1015

基于 Google Colab 的 mask rcnn 训练自己的数据集(以实例分割为例)

详细步骤1 数据集的制作1.1 数据标注1.2 生成数据集2 环境的搭建2.1 搭建流程2.2 注意事项(报错)3 开始训练4 可视化4.1 修改webcam.py文件4.2 进行可视化5 参考文章 1 数据集的制作 1.1 数据标注 使用 labelme=4.5.6 版本进行标注,标注文件指定到保存图片的路径下,也就是json文件和jpg文件放在同一个文件夹里 1.2 生成数据集 先手动划分训练集和测试集(包括图像和标注文件),然后分别整合它们的标注信息,参考代码:1_ships_to_coco.py

G果的博客 8002

电子凸轮追剪算法深度解析:2500字图解+代码实战

工艺需求:在物料连续运动过程中完成精准切割核心矛盾:切割瞬间刀具与物料必须绝对同步传统方案:机械凸轮(结构复杂,调整困难)现代方案:电子凸轮(柔性可调,精度更高)

QQ_778132974的博客 1112

【PyTorch】CNN(一维卷积Conv1D)实现时间序列预测

本文介绍了一维卷积神经网络(Conv1D)在时间序列预测中的应用,展示了其基本原理及实现方式。通过合适的数据预处理和模型调参,Conv1D可以有效地捕捉时间序列数据中的模式,从而进行精准预测。

走向CTO的路上... 1173

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: java从入门到入狱【绝招】
下一篇: java随机生成6位不重复的字符串
苏乞儿丶
博客等级 码龄9年 22粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值