Java 中的 SDK

java江南 發佈 2022-05-13T21:00:16.672977+00:00

開發準備相關資源cos java sdk v4 github 項目。環境依賴JDK 1.7(本版本 SDK 基於 JSON API 封裝組成)。安裝 SDKmaven 安裝。pom.xml 添加依賴<dependency> <groupId>com.

開發準備

相關資源

cos java sdk v4 github 項目。

環境依賴

JDK 1.7(本版本 SDK 基於 JSON API 封裝組成)。

安裝 SDK

  • maven 安裝。
    pom.xml 添加依賴
  • <dependency> <groupId>com.qcloud</groupId> <artifactId>cos_api</artifactId> <version>4.7</version> </dependency>
  • 源碼安裝。
    從 cos java sdk v4 github 下載源碼。

卸載SDK

刪除 pom 依賴或源碼。

歷史版本

4.2版本是針對 COS 4.X系統,接口與3.x的基本一致,如果需要使用歷史版本,請參見 cos java sdk v3 github。

生成客戶端對象

初始化密鑰信息

long appId = 1000000;
String secretId = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
String secretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
// 設置要操作的bucket
String bucketName = "xxxxxxxxx";
// 初始化密鑰信息
Credentials cred = new Credentials(appId, secretId, secretKey);

初始化客戶端配置(如設置園區)

// 初始化客戶端配置
ClientConfig clientConfig = new ClientConfig();
// 設置bucket所在的區域,例如華南園區:gz; 華北園區:tj;華東園區:sh ;
clientConfig.setRegion("gz");

生成客戶端

// 初始化cosClient
COSClient cosClient = new COSClient(clientConfig, cred);

文件操作

上傳文件

方法原型

String uploadFile(UploadFileRequest request);

參數說明

參數名

類型

默認值

參數描述

request

UploadFileRequest

上傳文件類型請求

request成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket名稱

cosPath

String

構造函數或 set 方法

cos路徑, 必須從 bucket 下的根/開始,文件路徑不能以/結尾, 例如 /mytest/demo.txt

localPath

String

構造函數或 set 方法

通過磁碟文件上傳的本地絕對路徑

contentBufer

byte[]

構造函數或 set 方法

通過內存上傳的 buffer 內容

bizAttr

String

構造函數或 set 方法

文件的備註,主要用於對該文件用途的描述

enableShaDigest

boolean

false

set 方法

是否計算 sha 摘要,如果開啟 sha,並且 bucket 下有相同內容文件,則會觸發秒傳。sha 計算會耗費一定的 CPU 和時間,建議大文件不開啟

taskNum

int

16

set 方法

文件上傳的並發數

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess, 'data':$data},code 為0表示成功,message 為 SUCCESS 或者失敗原因,data中包含相關的屬性,詳情請參見返回值模塊

示例

UploadFileRequest uploadFileRequest = new UploadFileRequest(bucketName,         "/sample_file.txt", "local_file_1.txt");
String uploadFileRet = cosClient.uploadFile(uploadFileRequest);

下載文件

方法原型

String getFileLocal(GetFileLocalRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

GetFileLocalRequest

下載文件請求

request 成員

request 成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos 路徑,必須從 bucket 下的根/開始,文件路徑不能以/結尾,例如 /mytest/demo.txt

localPath

String

構造函數或 set 方法

要下載到的本地路徑

useCDN

boolean

true

set 方法

是否通過 CDN 進行下載

referer

String

空串

set 方法

設置 Referer(針對開啟了 refer 防盜鏈的 bucket)

rangeStart

long

0

set 方法

要下載的字節起始,參見 HTTP Range

rangeEnd

long

Long.MAX_VALUE

set 方法

下載的字節結束,參見 HTTP Range

示例

String localPathDown = "src/test/resources/local_file_down.txt";
GetFileLocalRequest getFileLocalRequest =
  new GetFileLocalRequest(bucketName, cosFilePath, localPathDown);
getFileLocalRequest.setUseCDN(false);
getFileLocalRequest.setReferer("*.myweb.cn");
String getFileResult = cosClient.getFileLocal(getFileLocalRequest);

移動文件

方法原型

String moveFile(MoveFileRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

MoveFileRequest

移動文件請求

request 成員

request成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或set方法

bucket名稱

cosPath

String

構造函數或set方法

cos路徑,必須從bucket下的根/開始,文件路徑不能以/結尾, 例如 /mytest/demo.txt

dstCosPath

String

構造函數或set方法

移動文件的目標地址,必須從bucket下的根/開始,文件路徑不能以/結尾,例如/mytest/demo.txt.move

overWrite

枚舉類型

NO_OVER_WRITE (不覆蓋)

set 方法 setOverWrite

在移動的目標文件存在時,選擇不覆蓋還是覆蓋,默認不覆蓋

示例

String cosFilePath = "/sample_file.txt";
String dstCosFilePath = "/sample_file.txt.bak";
MoveFileRequest moveRequest =
  new MoveFileRequest(bucketName, cosFilePath, dstCosFilePath);
String moveFileResult = cosClient.moveFile(moveRequest);

獲取文件屬性

方法原型

String statFile(StatFileRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

StatFileRequest

獲取文件屬性請求

request成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos路徑,必須從 bucket 下的根/開始,文件路徑不能以/結尾,例如 /mytest/demo.txt

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess, 'data':$data},code 為0表示成功,message 為 SUCCESS 或者失敗原因,data 中包含相關的屬性,詳情請參見返回值模塊

示例

StatFileRequest statFileRequest = new StatFileRequest(bucketName, "/sample_file.txt");
String statFileRet = cosClient.statFile(statFileRequest);

更新文件屬性

方法原型

String updateFile(UpdateFileRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

UpdateFileRequest

更新文件屬性請求

request 成員

request 成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos 路徑, 必須從 bucket 下的根/開始,文件路徑不能以/結尾,例如 /mytest/demo.txt

bizAttr

String

set 方法

文件的備註,主要用於對改文件用途的描述

authority

String (枚舉)

set 方法

文件權限,默認是繼承 bucket 的權限合法取值: eInvalid(繼承bucket),eWRPrivate(私有讀寫), eWPrivateRPublic(私有寫, 公有讀)

cacheControl

String

set 方法

參見 HTTP 的 Cache-Control

contentType

String

set 方法

參見 HTTP 的 Content-Type

contentLanguage

String

set 方法

參見 HTTP 的 Content-Language

contentDisposition

String

set 方法

參見 HTTP 的 Content-Disposition

x-cos-meta-

String

set 方法

自定義 HTTP 頭,參數必須以 x-cos-meta-開頭,值由用戶定義,可設置多個

tips: 更新屬性可以選擇其中的某幾個,對於HTTP頭部cache_control,content_type, content_disposition 和 x-cos-meta-,如果本次只更新其中的某幾個,其他的都會被抹掉,即這4個屬性是整體更新。

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess},code為0表示成功,message 為 SUCCESS 或者失敗原因,詳情請參見返回值模塊

示例

UpdateFileRequest updateFileRequest = new UpdateFileRequest(bucketName, "/sample_file.txt");

updateFileRequest.setBizAttr("測試目錄");
updateFileRequest.setAuthority(FileAuthority.WPRIVATE);
updateFileRequest.setCacheControl("no cache");
updateFileRequest.setContentDisposition("cos_sample.txt");
updateFileRequest.setContentLanguage("english");
updateFileRequest.setContentType("application/json");
updateFileRequest.setXCosMeta("x-cos-meta-xxx", "xxx");
updateFileRequest.setXCosMeta("x-cos-meta-yyy", "yyy");

String updateFileRet = cosClient.updateFile(updateFileRequest);

刪除文件

方法原型

String delFile(DelFileRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

DelFileRequest

刪除文件請求

request 成員

request 成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos 路徑, 必須從 bucket 下的根/開始,文件路徑不能以/結尾, 例如/mytest/demo.txt

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess}, code 為0表示成功,message 為 SUCCESS 或者失敗原因,詳情請參見返回值模塊

示例

DelFileRequest delFileRequest = new DelFileRequest(bucketName, "/sample_file_move.txt");
String delFileRet = cosClient.delFile(delFileRequest);

目錄操作

創建目錄

方法原型

String createFolder(CreateFolderRequest request);    

參數說明

參數名

參數類型

默認值

參數描述

request

CreateFolderRequest

創建目錄請求

request 成員

request 成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos路徑,必須從 bucket 下的根/開始,目錄路徑必須以/結尾, 例如 /mytest/dir/

bizAttr

String

set方法

目錄的備註,主要用於對目錄用途的描述

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess},code 為0表示成功,message 為 SUCCESS 或者失敗原因,詳情請參見返回值模塊

示例

CreateFolderRequest createFolderRequest = new CreateFolderRequest(bucketName, "/sample_folder/");
String createFolderRet = cosClient.createFolder(createFolderRequest);

獲取目錄屬性

方法原型

String statFolder(StatFolderRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

StatFolderRequest

獲取目錄屬性請求

request 成員

request 成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或set方法

bucket名稱

cosPath

String

構造函數或set方法

cos路徑,必須從 bucket 下的根/開始,目錄路徑必須以/結尾,例如 /mytest/dir/

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess, 'data':$data},code 為0表示成功,message 為 SUCCESS 或者失敗原因,data 中包含相關的屬性,詳情請參見返回值模塊

示例

StatFolderRequest statFolderRequest = new StatFolderRequest(bucketName, "/sample_folder/");
String statFolderRet = cosClient.statFolder(statFolderRequest);

更新目錄屬性

方法原型

String updateFolder(UpdateFolderRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

UpdateFolderRequest

更新目錄屬性請求

request 成員

request 成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos路徑,必須從 bucket 下的根/開始,目錄路徑必須以/結尾, 例如 /mytest/dir/

bizAttr

String

set 方法

目錄的備註,主要用於對目錄用途的描述

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess},code 為0表示成功,message 為 SUCCESS 或者失敗原因,詳情請參見返回值模塊

示例

UpdateFolderRequest updateFolderRequest = new UpdateFolderRequest(bucketName, "/sample_folder/");
updateFolderRequest.setBizAttr("這是一個測試目錄");
String updateFolderRet = cosClient.updateFolder(updateFolderRequest);

獲取目錄列表

方法原型

String listFolder(ListFolderRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

ListFolderRequest

獲取目錄成員請求

request 成員

request 成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos 路徑, 必須從 bucket 下的根/開始,目錄路徑必須以/結尾, 例如 /mytest/dir/

num

int

199

構造函數或 set 方法

獲取列表成員的數量,最大為199

prefix

String

構造函數或 set 方法

搜索成員的前綴, 例如 prefix 為 test 表示只搜索以 test 開頭的文件或目錄

context

String

構造函數或 set 方法

搜索上下文, 由上一次 list 的結果返回,作為這一次搜索的起點,用於循環獲取一個目錄下的所有成員

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess, 'data':$data},code 為0表示成功,message 為 SUCCESS 或者失敗原因,data 中包含成員列表,詳情請參見返回值模塊

示例

ListFolderRequest listFolderRequest = new ListFolderRequest(bucketName, "/sample_folder/");
String listFolderRet = cosClient.listFolder(listFolderRequest);

刪除目錄

方法原型

String delFolder(DelFolderRequest request);

參數說明

參數名

參數類型

默認值

參數描述

request

DelFolderRequest

刪除目錄請求

request成員

類型

默認值

設置方法

描述

bucketName

String

構造函數或 set 方法

bucket 名稱

cosPath

String

構造函數或 set 方法

cos 路徑, 必須從 bucket 下的根/開始,目錄路徑必須以/結尾, 例如 /mytest/dir/

返回值

返回值類型

返回值描述

String

{'code':$code, 'message':$mess},code為 0 表示成功, message 為 SUCCESS 或者失敗原因,詳情請參見返回值模塊

示例

DelFolderRequest delFolderRequest = new DelFolderRequest(bucketName, "/sample_folder/");
String delFolderRet = cosClient.delFolder(delFolderRequest);

簽名管理

簽名模塊提供了生成多次簽名、單次簽名和下載簽名的接口,其中多次簽名和單次簽名在文件和目錄操作的api內部使用,用戶不用關心,下載簽名用於方便用戶生成下載私有 bucket 的文件簽名。

多次簽名

String getPeriodEffectiveSign(String bucketName, String cosPath, Credentials cred, long expired)

使用場景

上傳文件,重命名文件,創建目錄,獲取文件目錄屬性,拉取目錄列表。

參數說明

參數名

參數類型

默認值

參數描述

bucket

String

bucket 名稱

cos_path

String

要簽名的 cos 路徑

cred

Credentials

用戶身份信息,包括 appid,secretId,secretkey

expired

long

簽名過期時間,UNIX時間戳

返回值

base64 編碼的字符串。

示例

Credentials cred = new Credentials(appId, secretId, secretKey);
long expired = System.currentTimeMillis() / 1000 + 600;
String signStr = Sign.getPeriodEffectiveSign(bucketName, "/pic/test.jpg", cred, expired);

單次簽名

String getOneEffectiveSign(String bucketName, String cosPath, Credentials cred)

使用場景

刪除和更新文件目錄。

參數說明

參數名

參數類型

默認值

參數描述

bucket

unicode

bucket名稱

cos_path

unicode

要簽名的cos路徑

cred

Credentials

用戶身份信息,包括 appid,secretId,secretkey

返回值

base64 編碼的字符串。

示例

Credentials cred = new Credentials(appId, secretId, secretKey);
String signStr = Sign.getOneEffectiveSign(bucketName, "/pic/test.jpg", cred);

下載簽名

String getDownLoadSign(String bucketName, String cosPath, Credentials cred, long expired)

使用場景

生成文件的下載簽名,用於下載私有 bucket 的文件。

參數說明

參數名

參數類型

默認值

參數描述

bucket

unicode

bucket 名稱

cos_path

unicode

要簽名的 cos 路徑

cred

Credentials

用戶身份信息,包括 APPID,SecretId,Secretkey

expired

long

簽名過期時間, UNIX 時間戳

返回值

base64 編碼的字符串。

示例

Credentials cred = new Credentials(appId, secretId, secretKey);
long expired = System.currentTimeMillis() / 1000 + 600;
String signStr = Sign.getDownLoadSign(bucketName, "/pic/test.jpg", cred, expired);

返回值

code

含義

0

操作成功

-1

輸入參數錯誤,例如輸入的本地文件路徑不存在,cos 文件路徑不符合規範

-2

網絡錯誤,例如404等

-3

連接 cos 時發生異常,如連接超時


小夥伴們有興趣想了解內容和更多相關學習資料的請點讚收藏+評論轉發+關注我,後面會有很多乾貨。我有一些面試題、架構、設計類資料可以說是程式設計師面試必備!

所有資料都整理到網盤了,需要的話歡迎下載!私信我回復【111】即可免費獲取




































































































































出處:https://cloud.tencent.com/document/product/436/6273

關鍵字: