1,首先在 pom.xml 中加入maven依赖

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

2,在 application.yml 中配置 oss 的相关属性

aliyun:
oss:
endpoint : "https://oss-cn-beijing.aliyuncs.com"
accessKeyId : "你的。。。"
accessKeySecret : "你的。。。"
bucketName : "你的。。。"

3,将 oss 的属性注入到实体类 OssInstance.java , 方便之后的同一调用

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; @Component
@Data
@ConfigurationProperties(prefix = "aliyun.oss")
public class OssInstance {
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketName;
}

4,编写 oss 的功能接口   OssService.java

import java.io.File;

public interface OssService {

    //如果OSS文件存在,则上传的数据会覆盖该文件的内容;如果OSS文件不存在,则会新建该文件。
//如果修改文件,则传入之前的包含文件后缀的路径即可
/**
* 阿里云oss文件上传公共方法 (选择单个上传,上传完之后即可返回上传的地址)
* @param file 上传的文件对象
* @param filePath 上传到oss的文件地址。包括文件的后缀
* @return 上传后存储在oss上的路径。 便于之后的访问和删除
*/
String upload(File file, String filePath); /**
* 阿里云oss文件删除
* @param filepath
* @return
*/
public String delete(String filepath);
}

5, 实现 oss 功能的接口

import cn.hutool.core.io.FileUtil;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.example.demo.service.OssService;
import com.example.demo.utils.OssInstance;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.io.File;
import java.io.InputStream; @Service
public class OssServiceImpl implements OssService { @Autowired
private OssInstance ossInstance; @Override
public String upload(File file, String filePath) {
String endpoint = ossInstance.getEndpoint();
String accessKeyId = ossInstance.getAccessKeyId();
String accessKeySecret = ossInstance.getAccessKeySecret();
String bucketName = ossInstance.getBucketName(); // 文件流
InputStream inputStream = FileUtil.getInputStream(file); // 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try {
// 创建PutObject请求。
ossClient.putObject(bucketName, filePath, inputStream);
} catch (Exception e) {
System.out.println(e.getMessage());
return "上传失败";
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return filePath;
} @Override
public String delete(String filepath) {
String endpoint = ossInstance.getEndpoint();
String accessKeyId = ossInstance.getAccessKeyId();
String accessKeySecret = ossInstance.getAccessKeySecret();
String bucketName = ossInstance.getBucketName(); // 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try {
// 删除文件。
ossClient.deleteObject(bucketName, filepath);
} catch (Exception e) {
System.out.println(e.getMessage());
return "删除失败";
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return "删除成功";
} }

结束 ,自己写个Controller 直接调用 , 或者在其他需要使用到oss的服务直接注入 OssService 调用就可以 。

SpringBoot - 阿里云OSS - 上传和删除的更多相关文章

  1. 关于 tp5.0 阿里云 oss 上传文件操作

    tp5.0 结合阿里云oss 上传文件 1.引入 oss 的空间( composer install 跑下第三方拓展包及核心代码包) 备注:本地测试无误,放到线上有问题  应该是移动后的路劲(相对于服 ...

  2. TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片

    **TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片首先我们来看看淘宝的功能和样式:** 之后看看制作完成的演示:(由于全部功能弄成GIF有点大,限制上传大小好像在1M之内,压缩之后也有1.9 ...

  3. 基于SqlSugar的开发框架循序渐进介绍(26)-- 实现本地上传、FTP上传、阿里云OSS上传三者合一处理

    在前面介绍的随笔<基于SqlSugar的开发框架循序渐进介绍(7)-- 在文件上传模块中采用选项模式[Options]处理常规上传和FTP文件上传>中介绍过在文件上传处理的过程中,整合了本 ...

  4. android 阿里云oss上传

    购买了阿里云的oss空间,于是用它来存储图片,不过中间的使用算是出了些问题,导致很长的才成功. 不得不说,阿里云文档真的是无力吐槽...乱七八糟的.我完全是东拼西凑,才完成的图片上传功能. 走了很多的 ...

  5. 使用阿里云OSS上传文件

    本文介绍如何利用Java API操作阿里云OSS对象存储. 1.控制台操作 首先介绍一下阿里云OSS对象存储的一些基本概念. 1.1 进入对象存储界面 登录阿里云账号,进入对象存储界面,如图所示. 进 ...

  6. c#版阿里云oss上传——基于layui、pupload的oss 后端web端直传的vue组件

    废话前言 去年,做项目用到oss上传,度娘上逛了一圈写了个前后端代码结合的c#版oss上传. 今年又要用到oss上传时发现很难复用,复用改动的范围太大,显然这个轮子不合格.于是想了下,花了一天的时间( ...

  7. 阿里云OSS上传文件本地调试跨域问题解决

    问题描述: 最近后台说为了提高上传效率,要前端直接上传文件到阿里云,而不经过后台.因为在阿里云服务器设置的允许源(region)为某个固定的域名下的源(例如*.cheche.com),直接在本地访问会 ...

  8. 阿里云oss上传文件如何支持https?

    let client = new OSS.Wrapper({ accessKeyId: res.data.accessKeyId, accessKeySecret: res.data.accessKe ...

  9. 阿里云OSS 上传文件SDK

    Aliyun OSS SDK for C# 上传文件 另外:查找的其他实现C#上传文件功能例子: 1.WPF用流的方式上传/显示/下载图片文件(保存在数据库) (文末有案例下载链接) 2.WPF中利用 ...

  10. 阿里云OSS上传文件demo

    1.安装ali-oss npm install ali-oss --save 2.demo 此例中使用到了ElementUI的el-upload组件.因为样式为自定义的 所以没有用element的自动 ...

随机推荐

  1. 关于SpringBoot中出现的循环依赖问题

    环境: SpringBoot2.7.8 背景: 在增加出库订单时需要对物品表的的数量进行修改 因此我在OutboundController中创建了几个公共方法,并将其注入到Spring中,结果给我报了 ...

  2. 【Redis】一文掌握Redis原理及常见问题

    Redis是基于内存数据库,操作效率高,提供丰富的数据结构(Redis底层对数据结构还做了优化),可用作数据库,缓存,消息中间件等.如今广泛用于互联网大厂,面试必考点之一,本文从数据结构,到集群,到常 ...

  3. 编写.NET的Dockerfile文件构建镜像

    创建一个WebApi项目,并且创建一个Dockerfile空文件,添加以下代码,7.0代表的你项目使用的SDK的版本,构建的时候也需要选择好指定的镜像tag FROM mcr.microsoft.co ...

  4. libGDX游戏开发之Box2D碰撞(十五)

    libGDX游戏开发之Box2D(十四) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和goo ...

  5. MySQL 基础(三)事务与 MVCC

    事务 事务是一组原子性的 SQL 操作,或者被称为一个独立的工作单元,如果数据库引擎能够成功地对数据库应用该组的全部 SQL 语句,那么就会全部执行,否则全部不执行. 事务的特性 在关系数据库管理系统 ...

  6. VSCode C++开发环境配置:CMake 调试配置 launch.json

    相关内容 VSCode C++开发环境配置: LLVM clang clangd 安装 cmake sudo apt install cmake 安装 VSCode 插件 CMake CMakeToo ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题

    文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题 三.对于一个按升序排列的包含 n 个元素的有序数组 A 来说,HEAPSORT 的时间复杂度是多少?如果 A 是降序 ...

  8. 【玩转鲲鹏 DevKit系列】如何快速迁移无源码应用?

    本文分享自华为云社区<[玩转鲲鹏 DevKit系列]如何快速迁移无源码应用?>,作者: 华为云社区精选. 为了帮助广大用户和开发者快速将无源码应用从 x86 迁移到鲲鹏,鲲鹏 DevKit ...

  9. 实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

    大量复杂.乱序的图片依次标注效率极低,如果一次可以标注一大片的图片将极大地提升标注效率. 自动分组识别并提取图像特征,通过ModelArts先进的聚类算法可以将所有图片分组:将特征相似的图片归为一类, ...

  10. DevOps敏捷60问,一定有你想了解的问题

    摘要:问题覆盖了规划设计.开发集成.测试.部署发布.运维监控等DevOps落地实践中的关键疑点与难点. "DevOps的价值是又快又好地交付软件" --<凤凰项目>的作 ...