1. 程式人生 > >騰訊雲cos伺服器上傳圖片

騰訊雲cos伺服器上傳圖片

1、首先去騰訊雲cos官網註冊賬號,選擇【物件儲存】;

2、接下來建立【儲存桶】,【儲存桶】的意思類似於單獨的伺服器空間,只有建立了儲存桶才能儲存資源;

3、系統會根據儲存桶的名稱 自動生成一個獨有的域名;

4、儲存空間搞定了,接下來就是從本地上傳圖片到雲伺服器了;同時騰訊雲也提供了SDK文件和API文件,供我們借鑑,還是相當清楚的;

 

5、上傳圖片程式碼,需要注意的是區域,要和伺服器上儲存桶列表的【所屬區域】欄位一致;

package com.cos.web;

import java.io.File;
import java.net.URL;
import java.util.Date;

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.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.model.StorageClass;
import com.qcloud.cos.region.Region;

public class Upload {
	public static void main(String[] args) {
		// 1 初始化使用者身份資訊API金鑰(secretId, secretKey)
		COSCredentials cred = new BasicCOSCredentials("AKIDXuxxx", "71f4FEyWxxx");
		// 2 設定bucket的區域, COS地域的簡稱請參照 https://cloud.tencent.com/document/product/436/6224
		ClientConfig clientConfig = new ClientConfig(new Region("ap-beijing"));
		// 3 生成cos客戶端
		COSClient cosclient = new COSClient(cred, clientConfig);
		// 儲存桶bucket名需包含appid
		String bucketName = "demo-1258118289";
        // 指定要上傳到 COS 上物件鍵
        // 物件鍵(Key)是物件在儲存桶中的唯一標識。例如,在物件的訪問域名 `bucket1-1250000000.cos.ap-guangzhou.myqcloud.com/doc1/pic1.jpg` 中,物件鍵為 doc1/pic1.jpg, 詳情參考 [物件鍵](https://cloud.tencent.com/document/product/436/13324) 
		String key = "2.png";
		File localFile = new File("src/main/resources/2.png");
		PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
		// 設定儲存型別, 預設是標準(Standard), 低頻(standard_ia)
		putObjectRequest.setStorageClass(StorageClass.Standard_IA);
		try {
		    PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);

			Date expiration = new Date(new Date().getTime() + 5 * 60 * 10000);
		    URL url = cosclient.generatePresignedUrl(bucketName, key, expiration);
			System.out.println("圖片在COS伺服器上的url:"+url);
		    // putobjectResult會返回檔案的etag
		    String etag = putObjectResult.getETag();
		
		} catch (CosServiceException e) {
		    e.printStackTrace();
		} catch (CosClientException e) {
		    e.printStackTrace();
		}

		// 關閉客戶端
		cosclient.shutdown();
}
	
}

6、下載圖片的程式碼

package com.cos.web;

import java.io.File;

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.GetObjectRequest;
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;

public class Download {
	public static void main(String[] args) {
		// 1 初始化使用者身份資訊(secretId, secretKey)
		COSCredentials cred = new BasicCOSCredentials("AKIDXu20jxxxxx","71f4FEyWxxxx");
		// 2 設定bucket的區域, COS地域的簡稱請參照
		// https://cloud.tencent.com/document/product/436/6224
		ClientConfig clientConfig = new ClientConfig(new Region("ap-beijing"));
		// 3 生成cos客戶端
		COSClient cosclient = new COSClient(cred, clientConfig);
		// bucket名需包含appid
		String bucketName = "demo-1258118289";
// 物件鍵(Key)是物件在儲存桶中的唯一標識。例如,在物件的訪問域名 `bucket1-1250000000.cos.ap-guangzhou.myqcloud.com/doc1/pic1.jpg` 中,物件鍵為 doc1/pic1.jpg, 詳情參考 [物件鍵](https://cloud.tencent.com/document/product/436/13324)
		String key = "1.png";
		File downFile = new File("src/main/resources/2.png");
		// 指定要下載的檔案所在的 bucket 和物件鍵
		GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
		try {
			ObjectMetadata downObjectMeta = cosclient.getObject(getObjectRequest, downFile);
			// putobjectResult會返回etag
			String etag = downObjectMeta.getETag();
			System.out.println(etag);
		} catch (CosServiceException e) {
			e.printStackTrace();
		} catch (CosClientException e) {
			e.printStackTrace();
		}

		// 關閉客戶端
		cosclient.shutdown();
	}
}

 

ps:

1 初始化使用者身份資訊(secretId, secretKey),在【金鑰管理】裡面;
2 設定bucket的區域, COS地域的簡稱請參照 https://cloud.tencent.com/document/product/436/6224