Spring使用騰訊cos普通檔案上傳
阿新 • • 發佈:2018-11-14
騰訊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上傳也會耗費時間,所以很二,當然解決這個方法的問題還是使用分片上傳來解決。
分片上傳-----等後面整理好來,就會發出來