简单使用阿里云OSS对象存储

首先我们先去阿里云控制台开通oss对象存储(阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台)


这篇文件是借鉴至(教你三分钟上手阿里云OOS上传操作_阿里云定时上传怎么使用-CSDN博客)的,源码也给了,感兴趣的伙伴可以去他那里,



 


在页面右边找到新建Bucket



 将上面信息填写完整,截图不方便细说,这里用文字告知了


【Bucket名称】:用户自定义名称
【地域】:自定义选择
【存储类型】:标准存储
【同城冗余存储】:关闭「收费」
【版本控制】:不开通「收费」
【读写权限】:公共读
【服务端加密方式】:无
【实时日志查询】:不开通「收费」
【定时备份】:不开通「收费」


 读写权限改为公共读后,找到右上角头像的文字,点击ACCESSKey管理



到这一步,记得把生成的key和密钥都保存,后面要用,我这里不方便透露了,审核不过



 接下来就是引用到项目里面了,首先先引入jar包


<!--        阿里云oss存储-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.1.0</version>
        </dependency>

 下面直接上核心代码


package com.ruoyi.plm.service.utilsService;

import cn.hutool.core.date.DateTime;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.UUID;

/**
 * @Author 陈厚德
 * @Version 2.7
 */

//阿里云oss对象存储
@Service
public class AliYunOssUtilsService {



    public String uploadFileAvatar(MultipartFile file) {
        String endpoint = "";//bucket地址
        String accessKeyId = "";//密钥key
        String accessKeySecret = "";//密钥
        String bucketName = "";//bucket名称

        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路径手动拼接出来
      
            String url = "https://" + bucketName + "." + endpoint + "/" + fileName;
            return url;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }


}

接下里后端只需要将文件用参数接受,调用方法即可实现


这里是我的controller调用,给大伙借鉴借鉴(毕竟每个项目封装的不一样,不必直接复制引用)


@Autowired
AliYunOssUtilsService aliYunOssUtilsService;


@PreAuthorize("@ss.hasPermi('invest:table28A1:import')")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
    System.out.println("导入数据"+file);
    aliYunOssUtilsService.uploadFileAvatar(file);
    return AjaxResult.success();
}

 


 到这一步就已经实现了,前端将文件传给后端即可,下面看看效果

 



 

 到这里就已经存储成功了,希望可以帮助到各位小伙伴


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/368706.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024 RTE行业(实时互动行业)人才发展学习总结

解决方案 人才画像 开发者人才素质要求&#xff1a; 具备多个领域的技术知识注重团队合作&#xff0c;具备协作能力以用户为导向的用户体验意识具备创新思维和解决问题的能力需快速响应行业变化和持续的学习能力具备项目管理能力 学习和吸收新知识的渠道 RTE人才分类

前端vue/react项目压缩图片工具@yireen/squoosh-browser

想要在前端项目中压缩图片&#xff0c;然后再上传到后端保存&#xff0c;就需要一个压缩工具的帮助&#xff0c;暂时有两个依赖库可以选择&#xff1a;image-conversion和yireen/squoosh-browser&#xff0c;看了官方仓库地址和更新时间等详情&#xff0c;发现还是yireen/squoo…

计算机硬件基础知识

mos管 电阻 电容 MOS管的功能&#xff1a; 开关功能&#xff1a;MOS管可以用作开关&#xff0c;通过控制栅极电压来控制电流的通断。当栅极电压为高电平时&#xff0c;MOS管导通&#xff0c;允许电流通过&#xff1b;当栅极电压为低电平时&#xff0c;MOS管截止&#xff0c;阻止…

LCD——与LCD有关的基础知识

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 1、s5pv210 LCD编程原理 - biaohc - 博客园 2、LCD常用接口原理_5组信号线是几位-CSDN博客 一、LCD简介 1、LCD是什么&#xff1f; LCD&#xff08;Liquid Crystal Display&#xff09;…

LeetCode 每日一题Day 54 - 61

2859. 计算 K 置位下标对应元素的和 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 请你用整数形式返回 nums 中的特定元素之 和 &#xff0c;这些特定元素满足&#xff1a;其对应下标的二进制表示中恰存在 k 个置位。 整数的二进制表示中的 1 就是这个整数的 置位…

【MATLAB第96期】基于MATLAB的SVM(线性)、SVM(高斯)、决策树、KNN等机器学习算法回归及分类Boost集成学习模型(含不同模型权重)

【MATLAB第96期】基于MATLAB的SVM(线性)、SVM(高斯)、决策树、KNN等机器学习算法回归及分类Boost集成学习模型&#xff08;含不同模型权重&#xff09; 引言 文章使用Boost集成学习方法&#xff0c;对多个机器学习模型进行融合&#xff0c;并通过算法得到对应权重。 因暂时精…

springboot整合Sa-Token实现登录认证和权限校验(万字长文)

目前在国内的后端开发中&#xff0c;常用的安全框架有spring security、shiro。现在&#xff0c;介绍一款由国人开发的安全框架Sa-Token。这个框架完全由国人开发&#xff0c;所提供的Api文档和一些设置都是比较符合国人的开发习惯的&#xff0c;本次就来介绍一下如何在spring …

计算机设计大赛 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

【gcc】webrtc发送侧计算 丢包率

大神的分析 : 提到: 每当收到cc-feedback或者收到RR-report的时候就能统计出丢包率,在cc-controller中就会调用SendSideBandwidthEstimation::UpdatePacketsLost()去更新丢包率,同时进行码率预估 G:\CDN\rtcCli\m98\src\modules\congestion_controller\goog_cc\send_side_b…

计算机网络_1.6.1 常见的三种计算机网络体系结构

1.6.1 常见的三种计算机网络体系结构 1、OSI&#xff08;七层协议&#xff09;标准失败的原因2、TCP/IP参考模型3、三种网络体系结构对比 笔记来源&#xff1a; B站 《深入浅出计算机网络》课程 1、OSI&#xff08;七层协议&#xff09;标准失败的原因 &#xff08;1&#xf…

filebeat采集中断与变慢问题分析

4、未采集的那段时间内无以下日志&#xff0c;这段时间内数据源正常&#xff0c;应能被正常采集到。 5、相关进程资源&#xff0c;服务器磁盘、cpu、内存无明显异常。 6、日志中断前有如下报错。 2022-02-15T15:22:22.2230800 INFO log/harvester.go:254 Harvester started fo…

Qt程序设计-右键菜单栏功能

本文讲解如何实现Qt右键菜单栏功能 创建窗体项目,本文给窗体添加右键菜单栏功能,包含最大化、最小化、退出,当然也可以给某个控件添加,操作相同。 选中窗体,右键-转到槽,打开对话框如下 选中图示的信号,进行添加 剩余的功能直接在代码中添加。 代码如下 #ifndef MA…

一文读懂「LM,Large Model / Foundation Model」大模型

近年来&#xff0c;随着计算机技术和大数据的快速发展&#xff0c;深度学习在各个领域取得了显著的成果。为了提高模型的性能&#xff0c;研究者们不断尝试增加模型的参数数量&#xff0c;从而诞生了大模型这一概念。 一、什么是大模型&#xff1f; 1.1 概念介绍 一句话介绍…

Spring Framework(6.x)源码编译与源码阅读入门

目录 一、Spring Framework 源码获取问题 1.1 Spring Framework 官网 1.2 Spring Framework 源码地址 1.3 关于访问不了GitHub 官网的解决方案 1.3.1 修改本地hosts文件 1.3.2 GitHub520 1.3.3 Gitee 导入 二、Spring Framework 源码编译 2.1 环境说明 2.1.1 JDK版本 …

【鸿蒙】大模型对话应用(四):页面发起请求实现对话能力

Demo介绍 本demo对接阿里云和百度的大模型API&#xff0c;实现一个简单的对话应用。 DecEco Studio版本&#xff1a;DevEco Studio 3.1.1 Release HarmonyOS SDK版本&#xff1a;API9 关键点&#xff1a;ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 定义接…

CSS常用动画网站(纯css echarts等 建议经常阅读 积累素材)

CSS动画代码集合 https://www.webhek.com/post/css3-animation-sniplet-collection/#/ 这个网站中将常见的css动画都进行了集合,并且有详细的代码,可以直接使用 echarts图表 https://www.isqqw.com/ echarts也是前端常用的,虽然官方文档已经给出了很多的案例,但是有时候产品还…

【数据结构与算法】之排序系列-20240202

这里写目录标题 一、389. 找不同二、414. 第三大的数三、455. 分发饼干四、506. 相对名次五、561. 数组拆分六、594. 最长和谐子序列 一、389. 找不同 简单 给定两个字符串 s 和 t &#xff0c;它们只包含小写字母。 字符串 t 由字符串 s 随机重排&#xff0c;然后在随机位置添…

禁止 ios H5 中 bounces 滑动回弹效果

在开发面向 iOS 设备的 HTML5 应用时&#xff0c;控制页面的滚动行为至关重要&#xff0c;特别是禁用在 Safari 中默认的滑动回弹效果。本文旨在提供一个简洁明了的解决方案&#xff0c;帮助开发者在特定的 Web 应用中禁用这一效果。 1. 什么是滑动回弹效果&#xff1f; 在 iO…

明道云入选亿欧智库《AIGC入局与低代码产品市场的发展研究》

2023年12月27日&#xff0c;亿欧智库正式发布**《AIGC入局与低代码产品市场的发展研究》**。该报告剖析了低代码/零代码市场的现状和发展趋势&#xff0c;深入探讨了大模型技术对此领域的影响和发展洞察。其中&#xff0c;亿欧智库将明道云作为标杆产品进行了研究和分析。 明…

navicat中的密码忘记了,解密navicat导出的密码

navicat 导出密码 打开导出的文件&#xff0c;获取加密后的密码 进入在线执行PHP代码的网站代码在线运行 - 在线工具 将网站中的代码替换&#xff0c;执行如下代码 <?phpnamespace FatSmallTools;class NavicatPassword {protected $version 0;protected $aesKey libc…
最新文章