1. 程式人生 > >Java使用騰訊雲COS上傳下載及刪除操作

Java使用騰訊雲COS上傳下載及刪除操作

簡介:騰訊雲物件儲存(Cloud Object Storage,COS)是騰訊云為企業和個人開發者們提供的一種能夠儲存海量資料的分散式儲存服務,使用者可隨時通過網際網路對您的大量資料進行批量儲存和處理。

首先先建立1個儲存桶


然後去雲API金鑰管理,新建1個金鑰



然後就可以通過這個金鑰訪問雲資源了

1.先引入騰訊雲COS的依賴包

<dependencies>
    <dependency>
        <groupId>com.qcloud</groupId>
        <artifactId>cos_api</artifactId>
<version>5.2.4</version> </dependency> <dependency> <groupId>com.qcloud</groupId> <artifactId>qcloud-java-sdk</artifactId> <version>2.0.1</version> </dependency> </dependencies>
2.以下程式碼可以對檔案進行上傳下載和刪除操作
package 
com.ljm.test; 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.model.GetObjectRequest; import com.qcloud.cos.model.PutObjectRequest; import com.qcloud.cos.region.Region;
import com.qcloud.cos.transfer.Download; import com.qcloud.cos.transfer.TransferManager; import com.qcloud.cos.transfer.Upload; import java.io.File; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 高階sdk操作 */ public class CosDemo { static String bucketName = "bj-demo"; //桶的名稱 static String key = "/upload_demo.pdf"; //上傳到雲上路徑 static String region = "ap-beijing";//區域北京則 beijing static String appId = "1257072160"; //APPID static COSCredentials cred = null; static TransferManager transferManager = null; static COSClient cosClient = null; static { // 1 初始化使用者身份資訊(secretId, secretKey) //SecretId 是用於標識 API 呼叫者的身份 String SecretId = ""; //SecretKey是用於加密簽名字串和伺服器端驗證簽名字串的金鑰 String SecretKey = ""; cred = new BasicCOSCredentials(SecretId, SecretKey); // 2 設定bucket的區域, ClientConfig clientConfig = new ClientConfig(new Region(region)); // 3 生成cos客戶端 cosClient = new COSClient(cred, clientConfig); // 指定要上傳到 COS 上的路徑 ExecutorService threadPool = Executors.newFixedThreadPool(32); // 傳入一個 threadpool, 若不傳入執行緒池, 預設 TransferManager 中會生成一個單執行緒的執行緒池。 transferManager = new TransferManager(cosClient, threadPool); } public static void main(String[] args) { //上傳 upload(); //下載 //download(); //刪除 //delete(); cosClient.shutdown(); } static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm ss"); /** * 上傳 */ public static void upload() { new Thread(new Runnable() { public void run() { try { System.out.println("上傳開始時間:" + sdf.format(new Date())); // .....(提交上傳下載請求, 如下文所屬) // bucket 的命名規則為{name}-{appid} ,此處填寫的儲存桶名稱必須為此格式 String bucket = bucketName + "-" + appId; //本地檔案路徑 File localFile = new File("src/test/resources/test.pdf"); PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, key, localFile); // 本地檔案上傳 Upload upload = transferManager.upload(putObjectRequest); // 非同步(如果想等待傳輸結束,則呼叫 waitForUploadResult) //UploadResult uploadResult = upload.waitForUploadResult(); //同步的等待上傳結束waitForCompletion upload.waitForCompletion(); System.out.println("上傳結束時間:" + sdf.format(new Date())); System.out.println("上傳成功"); //獲取上傳成功之後檔案的下載地址 URL url = cosClient.generatePresignedUrl(bucketName + "-" + appId, key, new Date(new Date().getTime() + 5 * 60 * 10000)); System.out.println(url); } catch (Throwable tb) { System.out.println("上傳失敗"); tb.printStackTrace(); } finally { // 關閉 TransferManger transferManager.shutdownNow(); } } }).start(); } /** * 下載 */ public static void download() { try { //下載到本地指定路徑 File localDownFile = new File("src/test/resources/download.pdf"); GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName + "-" + appId, key); // 下載檔案 Download download = transferManager.download(getObjectRequest, localDownFile); // 等待傳輸結束(如果想同步的等待上傳結束,則呼叫 waitForCompletion) download.waitForCompletion(); System.out.println("下載成功"); } catch (Throwable tb) { System.out.println("下載失敗"); tb.printStackTrace(); } finally { // 關閉 TransferManger transferManager.shutdownNow(); } } /** * 刪除 */ public static void delete() { new Thread(new Runnable() { public void run() { // 指定要刪除的 bucket 和路徑 try { cosClient.deleteObject(bucketName + "-" + appId, key); System.out.println("刪除成功"); } catch (Throwable tb) { System.out.println("刪除檔案失敗"); tb.printStackTrace(); } } }).start(); } }
下面2個檔案上要上傳的檔案,及重雲上下載下來的檔案


這個是上傳成功的效果,下面生成的連結是可以通過外網直接下載該檔案的地址