zoukankan      html  css  js  c++  java
  • OSS对象存储

    OSS对象存储

    • 前提:注册阿里云账号,开通OSS服务(免费),获取AccessKey和AccessKeySecret

    1、导入依赖

    • 这里joda-time的版本必须为2.x.x版本,否则和后面代码冲突
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.10.2</version>
    </dependency>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.5</version>
        <scope>compile</scope>
    </dependency>
    

    2、配置OSS基本信息

    server.port=8004
    
    spring.application.name=server_oss
    
    #spring.profiles.active=dev
    
    aliyun.oss.file.endpoint=oss-cn-hangzhou.aliyuncs.com
    aliyun.oss.file.keyid=*******************
    aliyun.oss.file.keysecret==*******************
    aliyun.oss.file.bucketname=wagn-edu
    

    3、创建类读取OSS基本信息

    package com.wagn.oss.utils;
    
    import org.springframework.beans.factory.InitializingBean;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component
    public class ReadUtil 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_POINT;
    
        public static String KEY_ID;
    
        public static String KEY_SECRET;
    
        public static String BUCKET_NAME;
    
        @Override
        public void afterPropertiesSet() throws Exception {
            END_POINT = endpoint;
            KEY_ID = keyid;
            KEY_SECRET = keysecret;
            BUCKET_NAME = bucketname;
        }
    }
    

    4、接口接收file流

    public class OssController {
        @Autowired
        private OssService ossService;
    
        @PostMapping("upload")
        public String upload(MultipartFile file){
            String rs = ossService.upload(file);
            return rs;
        }
    }
    

    5、上传图片并返回图片地址

    package com.wagn.oss.service.impl;
    
    import com.aliyun.oss.OSS;
    import com.aliyun.oss.OSSClientBuilder;
    import com.wagn.oss.service.OssService;
    import com.wagn.oss.utils.ReadUtil;
    import org.joda.time.DateTime;
    import org.springframework.stereotype.Service;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.InputStream;
    import java.util.UUID;
    
    @Service
    public class OssServiceImpl implements OssService {
        @Override
        public String upload(MultipartFile file) {
            
            String endpoint = ReadUtil.END_POINT;
            String accessKeyId = ReadUtil.KEY_ID;
            String accessKeySecret = ReadUtil.KEY_SECRET;
            String buketName = ReadUtil.BUCKET_NAME;
    
    
    
            try{
                // 创建OSSClient实例。
                OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    
                // 上传文件流。
                InputStream inputStream = file.getInputStream();
                String objName = file.getOriginalFilename();
                objName = UUID.randomUUID().toString().replaceAll("-","")+objName;
                objName = new DateTime().toString("yyyy/MM/dd/")+objName;
                ossClient.putObject(buketName, objName, inputStream);
                // 关闭OSSClient。
                ossClient.shutdown();
    
                String url;
                url = "https://"+buketName+"."+endpoint+"/"+objName;
                return url;
            }catch (Exception e){
                e.printStackTrace();
                return null;
            }
        }
    }
    
  • 相关阅读:
    解决VS控制台窗口自动关闭问题
    ZOJ1003:Crashing Balloon(dfs)
    POJ2607:Fire Station(SPFA+枚举)
    C语言在屏幕上输出玫瑰花图片
    HRBUST
    UVA10182: Bee Maja (模拟)
    洛谷P1144: 最短路计数(bfs)
    (转载)MySQL LIKE 用法:搜索匹配字段中的指定内容
    (转载)[MySQL技巧]INSERT INTO… ON DUPLICATE KEY UPDATE
    (转载)INSERT INTO .. ON DUPLICATE KEY 语法与实例教程
  • 原文地址:https://www.cnblogs.com/yizhixiang/p/13658344.html
Copyright © 2011-2022 走看看