騰訊雲對象存儲COS java版

新建maven項目    加入相關jar包

<dependency>
      <groupId>com.qcloud</groupId>
      <artifactId>cos_api</artifactId>
      <version>5.5.3</version>
</dependency>

 

//1、測試上傳本地文件,返回地址

//2、測試上傳文件流,返回地址 

package com.pt.TencentCosDemo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.model.ObjectMetadata;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.model.StorageClass;
import com.qcloud.cos.region.Region;
import com.qcloud.cos.transfer.TransferManager;

/** 
 * @author: py
 * @version:2019年6月10日 下午9:52:06 
 * @Desc 騰訊雲  cos對象存儲
 */
public class TencentCosUtil_py {
    
	static String bucketName = "p-63553"; //桶的名稱
    static String region = "ap-guangzhou";//區域北京則  beijing
    static String appId = "1553"; //APPID
    static COSCredentials cred = null;
    static TransferManager transferManager = null;
    static ClientConfig clientConfig = null;
	
    static {
        // 1 初始化用戶身份信息(secretId, secretKey)
        //SecretId 是用於標識 API 調用者的身份
        String SecretId = "AKIDlKSrEb0iCRuKoVFm";
        //SecretKey是用於加密簽名字符串和服務器端驗證簽名字符串的密鑰
        String SecretKey = "hDg6xb1ta2EBtV4OqE";
        cred = new BasicCOSCredentials(SecretId, SecretKey);
        // 2 設置bucket的區域,
        clientConfig = new ClientConfig(new Region(region));    
    }
    
    public static void main(String[] args) {
    //1、測試上傳本地文件,返回地址	
 String url = SimpleUploadFileFromLocal("aaa/cc/cam.png","d://cam.png");
    	System.out.println(url);
    	
//2、測試上傳文件流,返回地址
    	String url2;
		try {
			//MultipartFile.getInputStream()
			url2 = SimpleUploadFileFromStream("aaa/dd/cam.png",new FileInputStream(new File("d://cam.png")));
			System.out.println(url2);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
    

    /**
     * @author py
     * @date 2019年6月10日下午10:05:08
     * @param key  key前面爲路徑,後面爲文件名
     * @param filepath  上傳文件的路徑
     * @return String
     * @Des:  將本地文件上傳到COS
     * "aaa/cc/cam.png","d://cam.png"
     */
    public static String SimpleUploadFileFromLocal(String key ,String filepath) {
    	// 3 生成cos客戶端
    	COSClient cosClient = new COSClient(cred, clientConfig);
        File localFile = new File(filepath);
        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
        // 設置存儲類型, 默認是標準(Standard), 低頻(standard_ia)
        putObjectRequest.setStorageClass(StorageClass.Standard);
        try {
            PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
            // 關閉客戶端
            cosClient.shutdown();
            return "https://"+bucketName+".cos."+region+".myqcloud.com/"+key;
        } catch (CosServiceException e) {
            e.printStackTrace();
        } catch (CosClientException e) {
            e.printStackTrace();
        }
        
        // 關閉客戶端
        cosClient.shutdown();
        return null;
    }
    
    
    
    
    
 // 從輸入流進行讀取並上傳到COS
    public static String SimpleUploadFileFromStream(String key,InputStream input) throws IOException {
        //  生成cos客戶端
        COSClient cosClient = new COSClient(cred, clientConfig);
        // bucket名需包含appid
        ObjectMetadata objectMetadata = new ObjectMetadata();
        // 從輸入流上傳必須制定content length, 否則http客戶端可能會緩存所有數據,存在內存OOM的情況
        objectMetadata.setContentLength(Integer.valueOf(input.available()).longValue());
        // 默認下載時根據cos路徑key的後綴返回響應的contenttype, 上傳時設置contenttype會覆蓋默認值
        objectMetadata.setContentType("image/jpeg");
        
        PutObjectRequest putObjectRequest =
                new PutObjectRequest(bucketName, key, input, objectMetadata);
        // 設置存儲類型, 默認是標準(Standard), 低頻(standard_ia)
        putObjectRequest.setStorageClass(StorageClass.Standard);
        try {
            PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
            // 關閉客戶端
            cosClient.shutdown();
            return "https://"+bucketName+".cos."+region+".myqcloud.com/"+key;
        } catch (CosServiceException e) {
            e.printStackTrace();
        } catch (CosClientException e) {
            e.printStackTrace();
        }
        
        // 關閉客戶端
        cosClient.shutdown();
        return null;
    }
    
	
	
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章