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();
	}
	
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要从阿里云oss下载文件,可以使用Java SDK提供的OSSClient类。以下是使用Spring Boot实现从阿里云oss下载文件的步骤: 1. 引入阿里云Java SDK和Spring Boot依赖 在pom.xml中添加以下依赖: ``` <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 2. 配置阿里云oss参数 在application.properties或application.yml中添加以下阿里云oss参数: ``` aliyun.oss.endpoint=<your endpoint> aliyun.oss.accessKeyId=<your accessKeyId> aliyun.oss.accessKeySecret=<your accessKeySecret> aliyun.oss.bucketName=<your bucketName> ``` 3. 实现文件下载接口 在Spring Boot的Controller中添加文件下载接口,使用OSSClient类下载指定文件: ``` @RestController public class FileController { @Autowired private OSSClient ossClient; @GetMapping("/download") public void download(@RequestParam String objectName, HttpServletResponse response) throws IOException { OSSObject ossObject = ossClient.getObject(bucketName, objectName); InputStream inputStream = ossObject.getObjectContent(); response.setHeader("Content-Disposition", "attachment;filename=" + objectName); response.setContentType("application/octet-stream"); IOUtils.copy(inputStream, response.getOutputStream()); response.flushBuffer(); } } ``` 在上面的例子中,我们使用了@RequestParam注解来获取文件名,然后使用OSSClient类下载文件。最后,使用response将文件返回给客户端。 注意:在使用完OSSClient后,需要及时关闭它以释放资源。可以在Spring Boot的配置类中添加@PreDestroy注解来关闭OSSClient: ``` @Configuration public class OSSConfig { @Value("${aliyun.oss.endpoint}") private String endpoint; @Value("${aliyun.oss.accessKeyId}") private String accessKeyId; @Value("${aliyun.oss.accessKeySecret}") private String accessKeySecret; @Value("${aliyun.oss.bucketName}") private String bucketName; @Bean public OSSClient ossClient() { return new OSSClient(endpoint, accessKeyId, accessKeySecret); } @PreDestroy public void destroy() { ossClient().shutdown(); } } ``` 以上就是使用Spring Boot阿里云oss下载文件的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值