SpringBoot整合阿里云Oss实现文件图片上传

这篇具有很好参考价值的文章主要介绍了SpringBoot整合阿里云Oss实现文件图片上传。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 阿里云Oss注册使用

2. 项目中使用

2.1 引入依赖以及插件

2.2 编写配置文件application.properties

2.3 创建常量类,获取配置信息

 2.4 serviceImpl中实现逻辑


1. 阿里云Oss注册使用

springboot整合oss上传图片,小技巧,阿里云,云计算

 springboot整合oss上传图片,小技巧,阿里云,云计算

2. 项目中使用

2.1 引入依赖以及插件

 <dependencies>

        <!-- 阿里云oss依赖 -->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
        </dependency>

        <!-- 日期工具栏依赖 -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>
    </dependencies>


    <build>
        <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-resources-plugin</artifactId>
           <version>3.1.0</version>
       </plugin>
        </plugins>
    </build>

2.2 编写配置文件application.properties

#服务端口
server.port=8002
#服务名
spring.application.name=service-oss

#环境设置:dev、test、prod
spring.profiles.active=dev

#阿里云 OSS
#不同的服务器,地址不同
aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com
aliyun.oss.file.keyid=LTAI5t5udETG7H7Cs9FaJuKc
aliyun.oss.file.keysecret=2hCC0zjYiKj11VOabJ6uObWUeqvDeW
#bucket可以在控制台创建,也可以使用java代码创建
aliyun.oss.file.bucketname=edu-guli-ksj

#为解决 Failed to start bean 'documentationPluginsBootstrapper';
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

2.3 创建常量类,获取配置信息

package com.atguigu.service_oss.utils;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

//当项目已启动,spring接口,spring加载之后,执行接口一个方法
@Component
public class ConstantPropertiesUtils implements InitializingBean {

    //读取配置文件内容
    @Value("${aliyun.oss.file.endpoint}")
    private String endpoint;

    @Value("${aliyun.oss.file.keyid}")
    private String keyId;

    @Value("${aliyun.oss.file.keysecret}")
    private String keySecret;

    @Value("${aliyun.oss.file.bucketname}")
    private String bucketName;

    //定义公开静态常量
    public static String END_POIND;
    public static String ACCESS_KEY_ID;
    public static String ACCESS_KEY_SECRET;
    public static String BUCKET_NAME;

    @Override
    public void afterPropertiesSet() throws Exception {
        END_POIND = endpoint;
        ACCESS_KEY_ID = keyId;
        ACCESS_KEY_SECRET = keySecret;
        BUCKET_NAME = bucketName;
    }
}

 2.4 serviceImpl中实现逻辑

    @Override
    public String fileUploadToOss(MultipartFile file) {
        // 工具类获取值
        String endpoint = ConstantPropertiesUtils.END_POIND;
        String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
        String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
        String bucketName = ConstantPropertiesUtils.BUCKET_NAME;

        try {
            // 创建OSS实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

            //获取上传文件输入流
            InputStream inputStream = file.getInputStream();
            //获取文件名称
            String fileName = file.getOriginalFilename();

            //1 在文件名称里面添加随机唯一的值
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            // yuy76t5rew01.jpg
            fileName = uuid + fileName;

            //2 把文件按照日期进行分类
            //获取当前日期
            //   2019/11/12
            String datePath = new DateTime().toString("yyyy/MM/dd");
            //拼接
            //  2019/11/12/ewtqr313401.jpg
            fileName = datePath + "/" + fileName;

            //调用oss方法实现上传
            //第一个参数  Bucket名称
            //第二个参数  上传到oss文件路径和文件名称   aa/bb/1.jpg
            //第三个参数  上传文件输入流
            ossClient.putObject(bucketName, fileName, inputStream);

            // 关闭OSSClient。
            ossClient.shutdown();

            //把上传之后文件路径返回
            //需要把上传到阿里云oss路径手动拼接出来
            //  https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg
            String url = "https://" + bucketName + "." + endpoint + "/" + fileName;
            return url;
        } catch (Exception e) {
            //这块用到了日志处理的异常工具打印
            log.error(ExceptionUtil.getExceptionMessage(e));
            e.printStackTrace();
            return null;
        }
    }

 文章来源地址https://www.toymoban.com/news/detail-716135.html

 

 

 

 

 

到了这里,关于SpringBoot整合阿里云Oss实现文件图片上传的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud整合阿里云OSS实现文件上传

    阿里云OSS官网:OSS管理控制台 (aliyun.com) 什么是对象存储OSS 阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。 OSS具有与平台无

    2023年04月13日
    浏览(46)
  • SpringBoot整合阿里云OSS文件存储解决方案

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:SpringBoot实战 以下是专栏部分内容,更多内容请前往专栏查看! 标题 一文带你学会使用SpringBoot+Avue实现短信通知功能

    2024年02月08日
    浏览(39)
  • SpringBoot对接阿里云OSS上传文件以及回调(有坑)

    今天在对接阿里云OSS对象存储, 把这过程记录下来 阿里云的内容很多,文档是真的难找又难懂 本文主要是用的PostObject API 加上 Callback参数 PostObject - https://help.aliyun.com/document_detail/31988.html?spm=a2c4g.31989.0.0 Callback - https://help.aliyun.com/document_detail/31989.html?spm=a2c4g.31988.0.0 前端向后

    2024年02月11日
    浏览(59)
  • SpringBoot整合阿里云OSS对象存储

    阿里云对象存储服务(Object Storage Service,简称OSS)为您提供基于网络的数据存取服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。 阿里云OSS将数据文件以对象(object)的形式上传到存储空间(bucket)中。 可以进行

    2024年02月06日
    浏览(54)
  • (总目录)springboot - 实现zip文件上传并对zip文件解压, 包含上传oss

    本文会包含 java 文件校验 文件上传 文件压缩 zip文件的解压 oss的文件上传 oss前端上传 文章像齿轮一样, 部分位置需要自己组装满足不同业务需求 需要哪个就加哪个 注意类型和位置即可 注释都是很全的 如果在使用中 遇到问题 欢迎评论区指正 === 传送门: MultipartFile 统一文件

    2024年02月07日
    浏览(56)
  • SpringBoot项目上传图片(本地/OSS)

    可参考视频: 【springboot上传图片的两种方式详解(本地/OSS对象存储)】 https://www.bilibili.com/video/BV1TK411Z7ad/?share_source=copy_webvd_source=7f0416c71bcbaf44e08ad58367e3f198 视频前十分钟是从0开始编写图片保存到本地,可以照着视频敲出来,不想看也可以直接复制我下面的代码 在 Resources 目

    2023年04月14日
    浏览(43)
  • SpringBoot整合Minio实现文件上传、下载

    SpringBoot整合Minio实现文件上传、下载: 1,介绍高性能分布式存储文件服务Minio:Minio是 基于Go语言编写的对象存储服务 , 适合于存储大容量非结构化的数据 ,例如 图片、音频、视频、日志文件、备份数据和容器/虚拟机镜像等 ,而一个对象文件可以是任意大小,从几kb到最

    2024年02月06日
    浏览(50)
  • SpringBoot整合Hutool实现文件上传下载

    我相信我们在日常开发中,难免会遇到对各种媒体文件的操作,由于业务需求的不同对文件操作的代码实现也大不相同 maven配置 文件类 文件接口  配置静态资源映射

    2024年02月02日
    浏览(69)
  • JAVA通过阿里云OSS存储实现图片上传功能

    首先我们需要在阿里云注册账号,实名认证后开通OSS功能,点击进入OSS功能的管理平台 进入概览页面后,点击Bucket列表,创建一个Bucket(相当于一个存放文件的文件夹)  关键是要获得下面几个关键的信息,只有拥有这些信息才能连接上这个Bucket进行操作: 添加对应依赖  

    2024年02月05日
    浏览(45)
  • 微信小程序上传文件(图片)至阿里云OSS,包含后端代码示例。

    ps:本文较为详细,需要有耐心的阅读,要是图片看不清楚可以下载到本地放大查看。 写这篇博客的主要目的是因为serverless架构下直接上传图片只能转base64,且body大小有限制 一、在阿里云创建RAM用户与角色 1.为什么要使用RAM用户? 云账号 AccessKey 是您访问阿里云 API 的密钥,具

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包