【SpringBoot实战】基于阿里云实现文件上传

【SpringBoot实战】基于阿里云实现文件上传

在实际项目开发中,不可避免地会使用到阿里云OSS进行文件存储。尽管阿里云有详细的开发文档,但本篇博客的目的是让我们能够用简明的代码快速实现这个功能。

引入依赖

<dependencies>
    <!-- 阿里云oss依赖 -->
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.9.1</version>
    </dependency>
    <!-- 日期工具栏依赖 -->
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.1</version>
    </dependency>
</dependencies>

文件上传

public String fileUpload(MultipartFile file) {
   
        String endpoint = "endpoint";  // 如:oss-cn-shanghai.aliyuncs.com
        String keyId = "keyId";
        String keySecret = "keySecret";
        String bucketName = "bucketName";  // bucket名称
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, keyId, keySecret);
        try {
   
            InputStream inputStream = file.getInputStream();
            // 文件实际名称
            String filename = file.getOriginalFilename();
            // 使用uuid确保文件名唯一
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            // 对上传文件进行分组,根据当前年/月/日
            String date = new DateTime().toString("yyyy/MM/dd");
            filename = date + "/" + uuid + filename;
            // 创建PutObjectRequest对象
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, filename, inputStream);
            // 设置该属性可以返回response。如果不设置,则返回的response为空
            putObjectRequest.setProcess("true");
            // 上传文件
            PutObjectResult result = ossClient.putObject(putObjectRequest);
            // 返回文件的url
            return result.getResponse().getUri();
        } catch (Exception e) {
   
            e.printStackTrace();
        } finally {
   
            if (ossClient != null) {
   
                ossClient.shutdown();
            }
        }
        return null;
    }

相关推荐

  1. SpringBoot实战基于阿里实现文件

    2023-12-22 06:26:04       38 阅读
  2. SpringBoot文件阿里

    2023-12-22 06:26:04       36 阅读
  3. React+umi+antdesign实现文件组件(阿里

    2023-12-22 06:26:04       32 阅读
  4. springboot实现七牛文件下载

    2023-12-22 06:26:04       16 阅读
  5. PHP实现阿里OSS文件

    2023-12-22 06:26:04       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 06:26:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 06:26:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 06:26:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 06:26:04       18 阅读

热门阅读

  1. vue获取图片的blob传给django后端

    2023-12-22 06:26:04       40 阅读
  2. OpenVAS 网络配置

    2023-12-22 06:26:04       35 阅读
  3. Linux安装Tengine服务器 linux安装tengine服务器

    2023-12-22 06:26:04       41 阅读
  4. Linux(CentOS)安装Redis教程

    2023-12-22 06:26:04       36 阅读
  5. centos 8 部署nextCloud

    2023-12-22 06:26:04       50 阅读
  6. cmake 查看编译命令,以及在vscode中如何使用cmke

    2023-12-22 06:26:04       37 阅读