zoukankan      html  css  js  c++  java
  • Spring boot 中使用OSS上传

     一、阿里云选择产品对象存储OSS,并创建 Bucket。

      

      根据需求选择配置,bucket名称需要全局唯一,读写权限选择公开读,用于外部通过url访问到图片资源。

     二、在创建的Bucker概览中查看Endpoint,用于外部访问的前缀。

          

     三、集成到springBoot项目中

     1、引入依赖

    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.10.2</version>
    </dependency>

     2、上传文件

    @PostMapping("/uploadfile")
      public ResponseEntity<?> postFile(@RequestParam("file") MultipartFile file) throws IOException {
        String endpoint = "";  //bucket概览中显示的endpoint(有地域差异)
        String accessKeyId = ""; // 个人的accessKeyId
        String accessKeySecret = ""; //个人的accessKeySecret(推荐创建RAM子账号进行访问)
    
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    
        String fileName = file.getOriginalFilename();
        // 获取文件的后缀名
        String extName = FileUtil.extName(fileName);
        FileUtil.mainName(fileName);
        // 生成上传文件名
        String finalFileName = randomFilePath(extName);
        byte[] bytes = file.getBytes();
    
        // <yourObjectName>表示上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
        PutObjectRequest putObjectRequest = new PutObjectRequest("bucketName",
          finalFileName,new ByteArrayInputStream(bytes) ); // 自己创建的bucket名字
        
        // 上传。
        ossClient.putObject(putObjectRequest);
    
        // 关闭OSSClient。
        ossClient.shutdown();
        return new ResponseEntity<>("成功", HttpStatus.OK);
      }
    
      private String randomFilePath(String fileType) {
        return DateUtil.format(new Date(), NORM_MONTH_PATTERN)+ IdUtil.simpleUUID() + "." + fileType;
      }

     其中获取文件后缀名使用hutool工具类,hutool包含了很多常用的工具类,引入依赖

    <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.3.1</version>
     </dependency>

    3、查看accessKeyId ,accessKeySecret 。

      在控制台选择右侧Access Key。

        

  • 相关阅读:
    [OpenGL ES 071]光照原理
    [OpenGL ES 03]3D变换:模型,视图,投影与Viewport
    [日志]当今最流行的网络生僻字,很火
    [日志]关于茶的基础知识
    [健康]快速除牙痛的八个小验方
    [日志]我们生活中的潜规则
    [日志]做事要方,做人要圆
    [日志]家居装修花钱看你怎么省
    [日志]非常宝贵的工作经验
    [日志]你用的着的一些家装尺寸数据
  • 原文地址:https://www.cnblogs.com/puxuebing/p/14223690.html
Copyright © 2011-2022 走看看