目录
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版本。