阿里云存储OSS使用及文件上传【示例:头像上传】

文件上传到oss文件服务器 (1)引入阿里云的oss依赖(2)代码的书写 3. elementui 异步上传OSS服务器 (1)前端 (2)后端工具: (3) controller接口 4. 保存用户信息--头像 (1)前端的布局 (2)后台代码 阅读详情

一、对象存储OSS

为了解决海量数据存储与弹性扩容,所以我们采用云存储的解决方案;

1.1开通“对象存储OSS”服务

(1)申请阿里云账号
(2)实名认证
(3)开通“对象存储OSS”服务
(4)进入管理控制台

1.2创建Bucket

选择:标准存储、公共读、不开通
在这里插入图片描述

二、创建Maven项目

2.1pom

<dependencies>
    <!--aliyunOSS-->
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>2.8.3</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

2.2找到编码时需要用到的常量值

(1)endpoint------>在Bucket中概述的访问域名
(2)bucketName------>在创建的Bucket中的名字
(3)accessKeyId------>在阿里云,点击头像中的AccessKey查看
(4)accessKeySecret------>在阿里云,点击头像中的AccessKey查看

三、开始

3.1第一步:配置文件

#阿里云 OSS
#不同的服务器,地址不同
aliyun.oss.file.endpoint=你的
aliyun.oss.file.keyid=你的
aliyun.oss.file.keysecret=你的
#bucket可以在控制台创建,也可以使用java代码创建
aliyun.oss.file.bucketname=你的

3.2第二步:创建配置文件工具类

@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;
    }
}

3.3第三步:创建controller

	@PostMapping
    public R uploadOssFile(MultipartFile file){
        //获取上传文件 MultipartFile
        //返回山传到oss的路径
        String url = ossService.uploadFileAvatar(file);
        return R.ok().data("url",url);
    }

3.4第四步:业务层service处理逻辑

	@Override
    public String uploadFileAvatar(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 {
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

            // 获取文件输入流
            InputStream inputStream = file.getInputStream();
            // 获取到文件的名称
            String filename = file.getOriginalFilename();
            
			// 1、在文件名称里面添加随机唯一的值
            String uuid = UUID.randomUUID().toString().replace("-","");
            filename = uuid+filename;

            // 2、把文件按照日期进行分类 例如 2021/11/11
            // 获取当前日期
            String dataPath = new DateTime().toString("yyyy/MM/dd");
            filename = dataPath + "/" + filename;
            
            // 调用oss方法实现上传
            ossClient.putObject(bucketName, filename, inputStream);
            // 关闭OSSClient。
            ossClient.shutdown();

            // 把上传之后文件路径返回
            // 需要把上传到阿里云oss路径手动拼接出来
            //https://sys-gulistudent.oss-cn-beijing.aliyuncs.com/%E5%A3%81%E7%BA%B8.jpg
            String url = "https://"+bucketName+"."+endpoint+"/"+filename;
            return url;
            
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }

四、示例:头像上传

4.1上传组件ImageCropper和PanThumb

到我的资源中下载【上传组件使用到的组件.zip】

4.2前端添加文件上传组件

template:

<!-- 讲师头像 -->
<el-form-item label="讲师头像">

    <!-- 头衔缩略图 -->
    <pan-thumb :image="teacher.avatar"/>
    <!-- 文件上传按钮 -->
    <el-button type="primary" icon="el-icon-upload" @click="imagecropperShow=true">更换头像
    </el-button>

    <!--
v-show:是否显示上传组件
:key:类似于id,如果一个页面多个图片上传控件,可以做区分
:url:后台上传的url地址
@close:关闭上传组件
@crop-upload-success:上传成功后的回调 -->
    <image-cropper
                   v-show="imagecropperShow"
                   :width="300"
                   :height="300"
                   :key="imagecropperKey"
                   :url="BASE_API+'/admin/oss/file/upload'"
                   field="file"
                   @close="close"
                   @crop-upload-success="cropSuccess"/>

</el-form-item>

引入组件模块:

import ImageCropper from '@/components/ImageCropper'
import PanThumb from '@/components/PanThumb'

注入组件

export default {
  components: { ImageCropper, PanThumb },
  data(){
  	teacher:{
  		...
  		avatar: ''
  	},
 	 //上传弹框组件是否显示
      imagecropperShow:false,
      imagecropperKey:0,//上传组件key值
      BASE_API:process.env.BASE_API,//接口API地址
      saveBtnDisabled: false // 保存按钮是否禁用,
  },
  methods: {
    //关闭上传弹框的方法
    close(){
      this.imagecropperShow = false;
      //上传组件初始化
      this.imagecropperKey = this.imagecropperKey + 1;
    },
    //上传成功方法
    cropSuccess(data){
      this.imagecropperShow = false;
      //上传之后接口返回图片地址
      this.teacher.avatar = data.url;
      //上传组件初始化
      this.imagecropperKey = this.imagecropperKey + 1;
      
    },
   }
 }
阿里云-对象存储OSS 本文保姆级的讲解了使用阿里云OSS对象存储服务。 阅读详情

相关推荐

文件存储(阿里云OSS)的实现

详细描述文件存储(上传)(阿里云OSS)的实现

hzk1791318012的博客 3504

linux上传文件到oss的方法

https://help.aliyun.com/document_detail/56990.html?spm=a2c4g.11186623.6.1282.5a5216bblAREjm https://help.aliyun.com/document_detail/50452.html?spm=a2c4g.11174283.6.1275.24747da2SQFT45 实时同步有第三方工具ossy...

weixin_33816821的博客 2333

JavaWeb——案例(16/21)- 文件上传-阿里云OSS-集成(文件上传流程、引入阿里云 OSS 工具类、开发文件上传接口、在 OSS 控制台查看文件、前后端联调 )

在前面的文章中,我们已经完成了阿里云 OSS 的准备和入门开发。本节将讲解如何,用于存储和管理。在时,需要上传员工的头像,并在系统中展示。提供一个文件选择框(通常是一个元素),允许用户选择头像图片。提供一个上传按钮,用户点击后触发文件上传操作。可选:提供一个预览区域,用于显示用户选择的头像图片。用户通过文件选择框选择一张头像图片。前端代码(如JavaScript)监听文件选择框的change事件,获取用户选择的文件对象。jpgpngjpeg等)。检查文件大小是否在允许范围内(例如,不超过2MB)。

li13437542099的博客 1223

使用阿里云OSS实现文件上传

springboot有一个目录:static这个目录其实就是静态资源目录,这个目录下面的文件是是可以通过http直接访问的。但是程序化一般是打成jar包的,我们没办法把文件写入到static下,所以springboot提供静态资源目录的额外的映射机制,就是静态资源服务映射。这个时候你把:aaa.png文件上传到了D://tmp下,那么:你可以通过:http:localhost:8777/uploadimg/aaa.png。我们为什么要实现文件上传,其实就要共享资源,大家都可以看你的在平台上上传的文件;

m0_48829811的博客 4488

Qt案例-编译阿里云OSS对象存储C++ SDK源码,并进行简单下载,上传数据,显示进度等相关功能

阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理。OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。

... 2566

阿里云OSS对象存储上传文件(二)C++上传(含代码)

比如上传一个100M的视频文件,用简单上传来整个文件上传,以及使用分片上传,按照100k分片,循环上传1000次,耗时上是有显著增加的。(2)官方文档中有进度条回调的使用,但注意,不管是对简单上传还是分片上传,它的本质上都是对单次上传的进度条反抗,放在分片上传中,就是对单个切片的进度反馈,而不是一整个的。简单查看官方文档后,会发现它具备了好几种上传方法,包括简单上传,追加上传,断点续传上传,分片上传,等。当你知道的,切片不一定会超过100份,假如只有10份,那进度反馈将是跳跃式的,给人直观上不好。

Larry_Yanan的博客 1306

使用对象存储OSS上传头像

对象存储OSS 当开发项目时要用到文件上传,头像上传…因此要做文件服务,阿里云OSS是一个很好的分布式文件服务系统。 阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。 开通对象存储OSS服务 申请阿里云账号 进行实名认证 开通对象存储服务 进入管理控制台 创建bucket SpringBoot集成OSS 1.在pom文件引入依赖 <dependency> <groupId>com

weixin_48304611的博客 668

Conformal LEC逻辑等价性检查介绍和参考脚本

分为三个产品:Conformal L、Conformal XL、Conformal GXL。L是功能性检查,XL支持复杂数据通路的综合和APR优化,GXL支持定制的stdcell和定制memory的检查。Cadence Conformal Equivalence Checker,就是常说的LEC,可以用来验证RTL、门级网表、甚至spice网表的逻辑等价性。do文件是conformal的脚本文件,可以由综合工具(RTL Compiler/Genus)自己产生(write_do_lec),也可以手写。

NanDigits的博客 7255

亲测简单易懂可用:阿里云OSS入门实战2(集成到SpringBoot项目中存放用户头像)

亲测简单易懂可用:阿里云OSS入门实战2(集成到SpringBoot项目中存放用户头像) 大噶好,我们继续延续上一章,学习如何使用OSS存放用户头像代码示例; 在application.properties中先加上OSS相关配置, aliyun.oss.file.endpoint为你创建bucket时候所选择的区域节点,可参考上一章2.3创建bucket图中的endpoint参数,aliyun.oss.file.keyid和aliyun.oss.file.keysecret可参考上一章3.2下载的文件,a

weixin_44958176的博客 690

华为鸿蒙系统也能用!5分钟搞定谷歌三件套安装(附最新APK下载链接)

本文为华为鸿蒙系统用户提供了一份详尽的谷歌三件套(Google Play服务、商店及框架)手动安装指南。文章核心在于无需Root,通过ADB命令获取设备信息,并从可靠来源下载匹配版本的APK,按照正确顺序安装,从而解决海外应用依赖问题,实现5分钟快速部署。

c7d8e9的博客 6499

python 成语接龙-连接数据库

from xpinyin import Pinyin import pymysql while 1: conn = pymysql.connect( host='localhost', #本地连接 user='root', #数据库账户名 password='password', #数据库密码 db='dic',

Hero2902的博客 598

后端之路——阿里云OSS云存储

全名叫“阿里云对象存储OSS”,就是云存储,前端发文件到服务器,服务器不用再存到本地磁盘,可以直接传给“阿里云OSS”,存在网上。

m0_73991249的博客 1万+

告别Docker Desktop!Colima在Mac上的5分钟极速安装与配置指南(M1芯片实测)

本文详细介绍了如何在Mac(尤其是M1芯片)上快速安装和配置Colima,作为Docker Desktop的免费替代品。通过优化配置和实战指南,帮助开发者提升容器运行效率,减少资源占用,实现丝滑的开发体验。

weixin_28839601的博客 445

手把手教你使用阿里云对象存储 OSS服务上传文件-保姆级!

在使用Java制作项目的过程中想实现文件上传功能,使用传统的上传文件存储到本地磁盘会存在许多弊端,并且极其不方便等问题,以及在学习JavaWeb的过程中都会使用到文件上传存储功能。为此我们可以通过使用:阿里云对象存储服务(Object Storage Service,简称OSS)为您提供基于网络的数据 存取服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频 等在内的各种非结构化数据文件。在此,此文档为了照顾刚学习的新手党同学,以下是从注册账号到实现一个简单上传的完整过程。

ITjake的博客 1万+

AUTOSAR/汽车行业

AUTOSAR架构及汽车产业链相关介绍

m0_54254513的博客 1万+

解锁RK1126与SC132GS摄像头适配密码:技术与代码全解析

本文详细介绍了瑞芯微RK1126芯片与SC132GS摄像头的适配方法。首先分析了RK1126的四核Cortex-A7处理器、Mali-T860 GPU等硬件特性,以及SC132GS的130万像素、全局快门等技术参数。重点阐述了基于MIPI CSI接口的硬件连接原理和基于V4L2框架的软件驱动设计,并提供了完整的初始化、数据采集和图像处理代码实现。针对常见连接和图像质量问题给出了解决方案,展现了该组合在智能安防、工业检测等领域的应用潜力,为开发者提供了实用的技术参考。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1503

使用阿里云OSS实现图片文件上传

使用阿里云OSS实现图片文件上传

小何的博客 8954

城市仿真软件:AnyLogic_(8).行人与人群动态仿真

定义行人个体的行为和属性,如行走速度、目标位置等。// 创建一个行人// 设置行走速度为1.5 m/s// 设置目标位置为入口// 创建另一个行人// 设置行走速度为1.2 m/s// 设置目标位置为出口// 创建行人// 创建乘客行人与人群动态仿真在城市规划、交通管理和紧急疏散等领域具有广泛的应用。通过AnyLogic提供的行人模型模块,可以有效地模拟行人的个体行为、群体动态和与环境的交互。

kkchenjj的博客 1250

在项目中使用阿里云oss实现文件上传功能

1. 慢慢的增强查询文档的能力,这一次的OSS的使用,其实也是锻炼查询文档的能力。2. OSS的具体使用,可以简化成以下几步:1. 购买OSS服务,创建好Bucket2. 获取AK(可以通过root或者ARM用户进行获取)3. 在程序中完成oss所需的参数配置包括AK参数的配置,以及上传文件功能的封装。

m0_63445035的博客 3808

Python 爬虫教程:抓取交通流量和道路信息

Scrapy是一个强大的爬虫框架,适用于大规模的爬虫任务。它提供了高效的数据抓取和存储功能,支持数据清洗和解析操作。Scrapy特别适合用于抓取开放的API接口和数据流。

2201_76125261的博客 2234

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

阿里云OSS文件上传

1. 前端要想进行文件上传必须定义一个form表单并且在表单中要定义一个表单项 type="file"2. 表单提交方式必须为post方式, 文件上传这些文件一般都比较大, 所以使用post方式3. 在form表单当中我们需要 enctype 这个属性来指定表单的编码格式为 ="multipart/form-data" 因为普通默认的编码格式是不适合传输大型二进制数据的.enctype默认取值即使不设置默认也是这个值, 对于常规表单来说直接将enctype设置为默认值没问题的。

Jean·z的博客 2773

STM32F407中文手册

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

使用阿里云进行OSS对象存储(超详细)

分别添加 “ALIBABA_CLOUD_ACCESS_KEY_ID” 和 “ALIBABA_CLOUD_ACCESS_KEY_SECRET”,对应(1)中保存的值。“OSS_ACCESS_KEY_ID”、“OSS_ACCESS_KEY_SECRET” 即 RAM 的 ID 和 密码。“设置” -> “编辑系统环境变量” -> “环境变量” -> “新建(系统变量)”点击 “SDK下载”,再点击 “Java” 旁边的小图标,“文档中心打开”点击 “权限控制” 下的 “阻止公共访问”,确认关闭。

weixin_74063049的博客 4276

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringBoot(文件上传功能,阿里云OSS存储,几种配置文件用法)【详解】

阿里云对象存储 OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供最高可达 99.995 % 的服务可用性。多种存储类型供选择,全面优化存储成本。

qq_1424674116的博客 3473

java中如何使用,阿里云OSS对象存储服务

java中使用阿里云OSS对象存储服务

shixuyong的博客 4908

阿里云OSS文件上传_对象存储服务全流程

阿里云OSS是一款安全可靠、低成本的云存储服务,适用于存储各类文件。本文介绍了OSS的核心优势:可扩展性、数据持久性、成本效益和简化管理,并重点讲解了图片上传等典型场景的接入流程。详细步骤包括开通OSS服务、创建Bucket、配置权限、集成Java SDK、编写上传工具类等,最后通过示例演示了文件上传功能。文章为开发者提供了从零开始接入OSS的完整指南,适合需要快速实现云存储功能的项目参考。

bugMaker_0621的博客 1731

谷粒学院(八)阿里云oss | 头像上传 | Nginx

谷粒学院(八)阿里云oss | 头像上传 | Nginx

LXYDSF的博客 2299
上一篇: SpringBoot学习笔记(五)SpringBoot与数据访问[JDBC、Druid、Jpa]
下一篇: 计算机系统结构考试预测题【附答案】
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值