腾讯cos普通文件上传,200M以下
以下使用的是腾讯云对象存储cos,参照腾讯官方网站,–java参考
pom加入依赖
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<version>5.4.5</version>
</dependency>
我们一般在spring框架下,使用的是MultipartFile,这里需要进行一下转换,直接使用输入流,在上传时,使用putObject方法时,需要使用这个类:
public PutObjectRequest(String bucketName, String key, InputStream input,
ObjectMetadata metadata) {
super(bucketName, key, input, metadata);
}
最后的方法是:(文件的大小,类型都可以通过MultipartFile类中得到)
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentLength(size);//文件的大小
objectMetadata.setContentType(contentType);//文件的类型
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, name, fileInputStream,objectMetadata);
PutObjectResult putObjectResult = getCosClient().putObject(putObjectRequest);
objectMetadata最好加上,不然会出一些其他问题
这个方法只使用于200M以下文件上传,因为:
上传大文件时,因为http协议的响应问题,造成长时间不能向客户端发送响应请求头
当然这个方法还是有弊端的:特别二,因为上传的时间会很慢,因为本身使用multipartfile会耗费时间,最后再通过cosclient上传也会耗费时间,所以很二,当然解决这个方法的问题还是使用分片上传来解决。
分片上传-----等后面整理好来,就会发出来