1. 程式人生 > >Spring使用騰訊cos普通檔案上傳

Spring使用騰訊cos普通檔案上傳

騰訊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上傳也會耗費時間,所以很二,當然解決這個方法的問題還是使用分片上傳來解決。


分片上傳-----等後面整理好來,就會發出來