推薦一下一個有趣的表情包收集網站,也能夠在線製做表情包,歡迎訪問:擼表情java
擼表情(http://www.lubiaoqing.com)這個網站是業餘時間開發的一個網站,涉及到大量表情包的檢索和存儲,我的服務器確定難覺得繼,因此選擇了騰訊雲存儲。git
在對接過程當中,使用了騰訊雲對象存儲服務 Java SDK,下載地址:github項目github
注意有個坑的地方就是必須是JDK1.7!!!json
pom.xml 添加依賴api
<dependency> <groupId>com.qcloud</groupId> <artifactId>cos_api</artifactId> <version>3.3</version> </dependency>
而後相關API文檔也是很完備的,以下:服務器
String uploadFile(UploadFileRequest request);
參數名 | 類型 | 默認值 | 參數描述 |
---|---|---|---|
request | UploadFileRequest | 無 | 上傳文件類型請求 |
request成員對象:markdown
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的文件簽名。app
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的頻控 |