文件操作
上傳文件
方法原型
String uploadFile(UploadFileRequest request);
參數說明
參數名 |
類型 |
默認值 |
參數描述 |
---|
request |
UploadFileRequest |
無 |
上傳文件類型請求 |
request成員 |
類型 |
默認值 |
設置方法 |
描述 |
---|
bucketName |
String |
無 |
構造函數或set方法 |
bucket名稱 |
cosPath |
String |
無 |
構造函數或set方法 |
cos路徑, 必須從bucket下的根/開始,文件路徑不能以/結尾, 例如 /mytest/demo.txt |
localPath |
String |
無 |
構造函數或set方法 |
要上傳的本地文件的絕對路徑 |
bizAttr |
String |
空 |
構造函數或set方法 |
文件的備註,主要用於對該文件用途的描述 |
insertOnly |
InsertOnly (枚舉) |
NO_OVER_WRITE (不覆蓋) |
set方法 |
是否直插入不覆蓋已存在的文件, NO_OVER_WRITE表示只直插入不覆蓋, 當文件存在返回錯誤 OVER_WRITE 表示允許覆蓋 |
返回結果說明
返回值類型 |
返回值描述 |
---|
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 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成員 |
類型 |
默認值 |
設置方法 |
描述 |
---|
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 moveFile(MoveFileRequest request);
參數說明
參數名 |
參數類型 |
默認值 |
參數描述 |
---|
request |
MoveFileRequest |
無 |
移動文件請求 |
request成員 |
類型 |
默認值 |
設置方法 |
描述 |
---|
bucketName |
String |
無 |
構造函數或set方法 |
bucket名稱 |
cosPath |
String |
無 |
構造函數或set方法 |
cos路徑, 必須從bucket下的根/開始,文件路徑不能以/結尾, 例如 /mytest/demo.txt |
overWrite |
OverWrite |
OverWrite.NO_OVER_WRITE |
構造函數或set方法 |
是否覆蓋, 0(默認): 不覆蓋, 1: 覆蓋 |
返回結果說明
返回值類型 |
返回值描述 |
---|
String |
{'code':\$code, 'message':$mess}, code爲0表示成功, message爲SUCCESS或者失敗原因, 詳情請參見返回值模塊 |
示例
MoveFileRequest moveFileRequest = new MoveFileRequest(bucketName, "/sample_file.txt", "/sample_file_move.txt");
String moveFileRet = cosClient.moveFile(moveFileRequest);
刪除文件
方法原型
String delFile(DelFileRequest request);
參數說明
參數名 |
參數類型 |
默認值 |
參數描述 |
---|
request |
DelFileRequest |
無 |
刪除文件請求 |
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成員 |
類型 |
默認值 |
設置方法 |
描述 |
---|
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成員 |
類型 |
默認值 |
設置方法 |
描述 |
---|
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成員 |
類型 |
默認值 |
設置方法 |
描述 |
---|
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成員 |
類型 |
默認值 |
設置方法 |
描述 |
---|
bucketName |
String |
無 |
構造函數或set方法 |
bucket名稱 |
cosPath |
String |
無 |
構造函數或set方法 |
cos路徑, 必須從bucket下的根/開始,目錄路徑必須以/結尾, 例如 /mytest/dir/ |
num |
int |
199 |
構造函數或set方法 |
獲取列表成員的數量,最大爲199 |
pattern |
ListPattern (枚舉) |
BOTH |
構造函數或set方法 |
獲取列表成員類型, 合法取值 BOTH(獲取文件和目錄), DIR_ONLY(只獲取目錄), FILE_ONLY(只獲取文件) |
prefix |
String |
空 |
構造函數或set方法 |
搜索成員的前綴, 例如prefix爲test表示只搜索以test開頭的文件或目錄 |
context |
String |
空 |
構造函數或set方法 |
搜索上下文, 由上一次list的結果返回,作爲這一次搜索的起點,用於循環獲取一個目錄下的所有成員 |
order |
ListOrder (枚舉) |
POSITIVE (正序) |
構造函數或set方法 |
搜索順序, POSITIVE: 正序, NEGATIVE: 逆序 |
返回結果說明
返回值類型 |
返回值描述 |
---|
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時發生異常,如連接超時 |
-71 |
操作頻率過快,觸發cos的頻控 |