目錄
1、准備配置
任何一個東西,都是從0到1的過程,解決問題之前,我們得先有一個賬號(已有賬號可以跳過此步驟)
- 首先,我們准備一個騰訊雲(https://cloud.tencent.com/)的賬號(沒有就注冊一個),然后首頁選擇對象存儲,點擊立即使用跳轉;
- 然后登錄進來后看到這個,可以免費使用6個月,還是感覺不錯的,雖然買一般的也不貴,但是有便宜不占是孫子,哈哈
- 現在我們就可以來創建一個存儲桶了,這里注意訪問權限選擇公有讀寫,不然圖片上傳成功后無法預覽
- 創建成功后,點擊列表的存儲桶名稱或配置管理,就可以查看桶的一些配置,比如可以新建個文件存放圖片啥的。然后我們再選擇密鑰管理,新建一個密鑰(APPID),SecretId、SecretKey用於代碼里面的配置。
廢話不多說,上代碼
- 雲配置類
- 上傳圖片代碼*(Java已經實現了MD5、SHA1算法。利用java.security.MessageDigest類就可以獲取字符串和文件的MD5以及SHA1結果)
-
MD5
-
(Java中的 << 、<<、 >>>表示:)
- << 表示左移,不分正負數,低位補0
- >> 表示右移,如果該數為正,則高位補0,若為負數,則高位補1
- >>> 表示無符號右移,也叫邏輯右移,即若該數為正,則高位補0,而若該數為負數,則右移后高位同樣補0
2、解決問題
- 重現問題,上傳圖片的時候提示上傳失敗,顯示異常信息
這個是什么意思,就是說我們的桶名稱不符合,為什么呢,我們查看一下 COSClient類 的源碼,我們直接通過快捷鍵搜索一下 報錯信息中的 music-1251122334,找到這么一個方法,
Pattern與Matcher一起合作.Matcher類提供了對正則表達式的分組支持,以及對正則表達式的多次匹配支持. 單獨用Pattern只能使用Pattern.matches(String regex,CharSequence input)一種最基礎最簡單的匹配。
- 報異常的原因那就是我們的bucketName沒有跟提供的規則匹配上,那規則是什么呢,就是這句,只匹配了125、100開頭,但是我們的是130開頭的,比如我的:wxb-1301890880
解決的辦法就是更新依賴包,之前使用的是5.2.4版本,現在替換為5.6.8版本。