与SpringBoot 集成,OSS 简单上传组件一行代码实现上传

与SpringBoot 集成,OSS 简单上传组件一行代码实现上传


1、添加依赖

        <!--阿里云OSS的SDK-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>2.8.2</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-beanutils</groupId>
                    <artifactId>commons-beanutils</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

2、编写配置类

根据OSS 的实际情况填写配置

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

/**
 * @author Created by 谭健 on 2018/11/30. 星期五. 10:40.
 * © All Rights Reserved.
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class OSSConfig {


    public static final String ACCESS_KEY_ID = "****";

    public static final String ACCESS_KEY_SECRET = "****";

    public static final String END_POINT = "*****";
    public static final String BUCKET = "****";
    public static final String HOST = "https://" + BUCKET + "." + END_POINT;

    @NoArgsConstructor(access = AccessLevel.PRIVATE)
    public static class Dir {
        public static final String IMG = "img/";
    }


}

3、编写上传组件

import com.aliyun.oss.OSSClient;
import com.zyb.mini.mall.config.OSSConfig;
import com.zyb.mini.mall.utils.UUID;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.io.InputStream;

/**
 * @author Created by 谭健 on 2018/12/3. 星期一. 16:32.
 * © All Rights Reserved.
 * <p>
 * oss 组件
 */
@Component
@Slf4j
public class OssComponent {


    /**
     * 文件上传
     *
     * @param inputStream 输入流
     * @param dir         see
     * @param suffix      文件后缀
     * @see OSSConfig.Dir
     */
    public String upload(InputStream inputStream, String suffix, String dir) {
        if (inputStream == null) {
            log.error("通过OSS 简单上传时,输入流为空");
            return "";
        }
        String filename = dir + UUID.randomUUID() + "." + suffix;
        OSSClient client = new OSSClient(OSSConfig.END_POINT, OSSConfig.ACCESS_KEY_ID, OSSConfig.ACCESS_KEY_SECRET);
        client.putObject(OSSConfig.BUCKET, filename, inputStream);
        client.shutdown();
        return OSSConfig.HOST + "/" + filename;

    }

}

4、使用注入或者new 对象进行操作

注入


    @Autowired
    private OssComponent oss;

new 对象

OssComponent oss = new OssComponent();
发布了442 篇原创文章 · 获赞 1375 · 访问量 210万+

猜你喜欢

转载自blog.csdn.net/qq_15071263/article/details/102879108