springboot项目封装阿里云OSS文件上传模板 详细注释

springboot项目,最后返回的结果就是上传后文件的URL。

返回值为文件在你的OSS水桶上的url,方便项目进行下一步开发,也方便postman测试,初学阿里云项目,给自己的成长做一个记录哈哈!

写在application.properties中的
oss.endpoint=oss-cn-shenzhen.aliyuncs.com
oss.accessKeyId=码了码了
oss.accessKeySecret=码了码了
oss.bucket=caowenzhe

import java.io.InputStream;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

import lombok.Data;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;

@ToString
@Data    //自动生成get,set方法,故我模板类只写了一个upload方法
@Slf4j
//@Component 不用这种方式从配置文件中注入属性,采用再创建一个配置类AppProjectConfig,通过此配置类来注入属性
public class OssTemplate {

	//@Value("${oss.endpoint}")不用这种方式从配置文件中注入属性,采用再创建一个配置类AppProjectConfig,通过此配置类来注入属性
	String endpoint ;
	String accessKeyId ;
	String accessKeySecret ;	
	String bucket ;
	
	public String upload(String filename,InputStream inputStream)  {
	
		log.debug("endpoint={}",endpoint);
		log.debug("accessKeyId={}",accessKeyId);
		log.debug("accessKeySecret={}",accessKeySecret);
		log.debug("bucket={}",bucket);
		
		try {
			// 创建OSSClient实例。
			OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

			// 上传文件流。
			//InputStream inputStream = new FileInputStream("D:/temp/p2.jpg");
			//参数直接传入inputStream
			ossClient.putObject(bucket, "pic/"+filename, inputStream);

			// 关闭OSSClient。
			ossClient.shutdown();
			
			String filepath = "https://"+bucket+"."+endpoint+"/pic/"+filename ;
			
			log.debug("文件上传成功-{}",filepath);
			
			//https://atcrowdfunding20190717.oss-cn-beijing.aliyuncs.com/pic/p1.jpg
			return filepath;
		} catch (Exception e) {
			e.printStackTrace();
			log.debug("文件上传失败-{}",filename);
			return null ;
		} 

	}

}

以下是配置类

@SpringBootConfiguration
public class AppProjectConfig {

	@ConfigurationProperties(prefix="oss") //application.properties的前缀为oss的属性都传进来
	@Bean
	public OssTemplate ossTemplate() {		
		return new OssTemplate();
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值