SpringBoot集成-阿里云对象存储OSS

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


阿里云 OSS 介绍

阿里云对象存储 OSS (Object Storage Service),是一款海量、安全、低成本、高可靠的云存储服务。使用 OSS,你可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种文件。

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

准备工作

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器
SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

  1. 登录阿里云后进入阿里云控制台首页选择 对象存储 OSS 服务

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

  1. 开通服务

  2. 创建Bucket

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

填写 bucket 名称 & 选存储空间归属的地域 & 选择读写权限为(公共读

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器
4. 获取密钥

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

创建 AccessKey

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

保存 AccessKey ID 和 AccessKey Secret

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

SpringBoot 集成 OSS

可以参考 官网 SDK 文档

  1. 导入 maven 坐标
<dependency>
	<groupId>com.aliyun.oss</groupId>
	<artifactId>aliyun-sdk-oss</artifactId>
	<version>${aliyun.sdk.oss}</version>
</dependency>
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>${jaxb-api}</version>
</dependency>

如果是 Java 9 及以上版本,还需要导入其他坐标

  1. 在 yml 中添加配置

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

对应的配置类

SpringBoot集成-阿里云对象存储OSS,SpringBoot相关,spring boot,阿里云,OSS对象存储,文件云服务器

  1. 编写 AliOssUtil
@Data
@AllArgsConstructor
@Slf4j
public class AliOssUtil {

    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;

    /**
     * 文件上传
     *
     * @param bytes
     * @param objectName
     * @return
     */
    public String upload(byte[] bytes, String objectName) {

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

        try {
            // 创建PutObject请求。
            ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }

        //文件访问路径规则 https://BucketName.Endpoint/ObjectName
        StringBuilder stringBuilder = new StringBuilder("https://");
        stringBuilder
                .append(bucketName)
                .append(".")
                .append(endpoint)
                .append("/")
                .append(objectName);

        log.info("文件上传到:{}", stringBuilder.toString());

        return stringBuilder.toString();
    }
}
  1. 配置 OSS Configuration
/**
 * 配置类,用于创建AliOssUtil对象
 */
@Configuration
@Slf4j
public class OssConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){

        log.info("开始创建阿里云文件上传工具类对象:{}", aliOssProperties);
        return new AliOssUtil(aliOssProperties.getEndpoint(),
                aliOssProperties.getAccessKeyId(),
                aliOssProperties.getAccessKeySecret(),
                aliOssProperties.getBucketName());

    }
}
  1. 编写通用上传文件接口
/**
 * 通用接口
 */
@RestController
@RequestMapping("/admin/common")
@Api(tags = "通用接口")
@Slf4j
public class CommonController {

    @Autowired
    private AliOssUtil aliOssUtil;

    @PostMapping("/upload")
    @ApiOperation("文件上传")
    public Result<String> upload(MultipartFile file){
        log.info("文件上传:{}", file);

        try {
            // 原始文件名
            String originalFilename = file.getOriginalFilename();
            // 后缀
            String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
            String objectName = UUID.randomUUID().toString() + extension;
            // 文件的请求路径
            String filePath = aliOssUtil.upload(file.getBytes(), objectName);
            return Result.success(filePath);
        } catch (IOException e) {
            log.error("文件上传失败:{}", e);
        }

        return Result.error(MessageConstant.UPLOAD_FAILED);
    }
}
  1. 上传文件到 OSS

从前端调用上面的上传文件的接口,就可以将文件上传到 OSS 上,并且获取到访问 OSS 文件路径的 URL 地址。文章来源地址https://www.toymoban.com/news/detail-742068.html

到了这里,关于SpringBoot集成-阿里云对象存储OSS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 阿里云-对象存储OSS

    大家好,我是 码赛客1024 ,今天我们一起来学习阿里云的对象存储服务OSS。 阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。 简单

    2024年01月16日
    浏览(42)
  • 阿里云对象存储OSS使用

    对象存储服务(Object Storage Service,简称 OSS)为您提供基于网络的数据存取服务。使用 OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。 对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主

    2024年02月11日
    浏览(40)
  • 阿里云对象存储(OSS)服务

    阿里云对象存储(OSS)服务 引入依赖 这里 aliyun-oss-spring-boot-starter 中默认引入的 aliyun-java-sdk-core 是 3.4.0 版本,但是 aliyun-spring-boot-dependencies 中对 aliyun-java-sdk-core 版本管理为:4.5.0,会导致版本冲突 所以排除 aliyun-oss-spring-boot-starter 默认的 aliyun-java-sdk-core ,单独引入 4.5.0 版

    2024年01月25日
    浏览(34)
  • 2.阿里云对象存储OSS

            文件上传,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件上传服务,需要有存储的支持,解决方案有以下几种: 存储方式

    2024年02月12日
    浏览(39)
  • 阿里云对象存储OSS文件上传

    阿里云oss地址: 对象存储OSS_云存储服务_企业数据管理_存储-阿里云 阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,提供12个9的数据持久性,99.995%的数据可用性和多种存储类型,适用于数据湖存储,数据迁移,企业数据管理,数据处理等多种场景,可对

    2024年02月12日
    浏览(32)
  • 阿里云oss对象存储的使用

    1.介绍 对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储 服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优 化存储成本。 2.使用步骤   1)登录阿里云:https://www.aliyun.com   2)开通阿里云对象存储服

    2024年01月17日
    浏览(36)
  • 阿里云对象存储OSS怎么收费?

    阿里云对象存储OSS收费有两种计费模式,即包年包月和按量付费,包年包月是指购买存储包、流量包来抵扣OSS产生的存储费核流量费,OSS标准(LRS)存储包100GB优惠价33元、500GB存储包半年162元、OSS存储包40GB一年9元,OSS流量包100G 49元/月,阿里云百科来详细说下阿里云对象存储

    2024年01月19日
    浏览(40)
  • 浅谈阿里云对象存储OSS

    OSS(即Object Storage Service)是一种提供海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本,官方一点解释就是对象存储是一种使用HTTP API存储和检索非结构化数据和元数据对象的工具。白

    2024年02月12日
    浏览(45)
  • 阿里云对象存储服务OSS前后联调

    申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址 全文共计11577字,阅读大概需要3分钟 在分布式集群系统中,前端通过浏览器上传图片给服务器存储时存在分库分表的情况,这就涉及到 文件存储 的情况,在高并发的情况下,考虑到服务器的性能和利用率

    2023年04月09日
    浏览(28)
  • 阿里云对象存储OSS学习笔记4

    存储类型介绍: 文件存储:NAS 文件存储、NFS。 块存储:SAN iSCSI: 硬盘通过IP的方式提供给其他设备使用。 对象存储:OSS、CUS:我们创建了一个存储池,我们的文件有文件本身、给文件生成元数据、文件唯一的ID。我们可以通过http和https来阅读。存储内容:内容不会变化的,例

    2024年02月06日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包