全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
COS对象存储服务的使用官网的简介是这样的:对象存储服务(Cloud Object Service)是面向企业和个人开发者提供的高可用,高稳定,强安全的云端存储服务。您可以将任意数量和形式的非结构化数据放入COS,并在其中实现数据的管理和处理。COS支持标准的Restful API接口,您可以快速上手使用,按实际使用量计费,无最低使用限制。然后我最开始是抱着死马当活马医的心态来使用的,进度上面要求我是要尽快完成的,而且我发现对于我这种小网站来说使用这个COS服务基本上是免费的,简直就是捡到宝的感觉,哈哈!所以我就赶紧放弃了我的nginx图片服务器。然后去github上面下载他们的官方文档。/tencentyun/cos-java-sdk-v4。在在里面有个demo.Java,然后直接拿过来用就行了。因为我项目上传的图片是要按年月日自动生成目录来存放的,所以官方提供的那段代码是非常不够用的。maven坐标是:html view plain copy print?在CODE上查看代码片派生到我的代码片 com.qcloud cos_api 4.2 一般在真实项目中只导入这个是不行的,还需要加入http的jar包,所以还需要:而且这个版本还要匹配,否则在本地localhost的时候是可以用的,但是一道服务器上就会说你少jar包了。html view plain copy print?在CODE上查看代码片派生到我的代码片 org.apache.httpcomponents httpmime 4.3.1 org.apache.httpcomponents httpcore 4.3 org.apache.httpcomponents httpclient 4.3.1 资源初始化:java view plain copy print?在CODE上查看代码片派生到我的代码片/ 设置用户属性, 包括appid, secretId和SecretKey / 这些属性可以通过cos控制台获取(/cos) long appId = 1000000; String secretId = xxxxxxxxxxxxxxxxxxxxxxxxxxx; String secretKey = xxxxxxxxxxxxxxxxxxxxxxxxxx; / 设置要操作的bucket String bucketName = xxxxxxxxx; / 初始化客户端配置 ClientConfig clientConfig = new ClientConfig(); / 设置bucket所在的区域,比如广州(gz), 天津(tj) clientConfig.setRegion(gz); / 初始化秘钥信息 Credentials cred = new Credentials(appId, secretId, secretKey); / 初始化cosClient COSClient cosClient = new COSClient(clientConfig, cred); 我只使用了其中的文件上传功能:java view plain copy print?在CODE上查看代码片派生到我的代码片/ 1. 上传文件(默认不覆盖) / 将本地的local_file_1.txt上传到bucket下的根分区下,并命名为sample_file.txt / 默认不覆盖, 如果cos上已有文件, 则返回错误 String cosFilePath = /sample_file.txt; String localFilePath1 = src/test/resources/bigfile.txt; UploadFileRequest uploadFileRequest = new UploadFileRequest(bucketName, cosFilePath, localFilePath1); uploadFileRequest.setEnableSavePoint(false); uploadFileRequest.setEnableShaDigest(false); String uploadFileRet = cosClient.uploadFile(uploadFileRequest); System.out.println(upload file ret: + uploadFileRet); 这段代码只是一个入门程序,所以在我们实际应用中肯定是需要进行修改的。例如我图片上传的吧,进来的是一个二进制流文件,总不能用String来接收吧,所以我将其改变了一下:我传进去的是一个MultipartFile。所以接收我需要一个byte.非常方便就改好了。MultipartFile uploadFilejava view plain copy print?在CODE上查看代码片派生到我的代码片/ 1. 上传文件(默认不覆盖) / 将本地的local_file_1.txt上传到bucket下的根分区下,并命名为sample_file.txt / 默认不覆盖, 如果cos上已有文件, 则返回错误 String cosFilePath = /images+imagePath+/+newName; byte localFilePath1 = uploadFile.getBytes(); UploadFileRequest uploadFileRequest = new UploadFileRequest(bucketName, cosFilePath, localFilePath1); uploadFileRequest.setEnableSavePoint(false); uploadFileRequest.setEnableShaDigest(false); String uploadFileRet = cosClient.uploadFile(uploadFileRequest); 那么我需要按年月日来生成目录,所以我需要这样。java view plain copy print?在CODE上查看代码片派生到我的代码片/ 生成一个新的文件 / 取原始文件名 String oldName = uploadFile.getOriginalFilename(); / 生成新文件名 / UUID.randomUUID(); String newName = IDUtils.genImageName(); newName = newName + oldName.substring(oldName.lastIndexOf(.); / 图片上传 String imagePath = new DateTime().toString(/yyyy/MM/dd); 所以完整代码就如下了:java view plain copy print?在CODE上查看代码片派生到我的代码片Override public Map uploadPicture(MultipartFile uploadFile) Map resultMap = new HashMap(); try / 生成一个新的文件 / 取原始文件名 String oldName = uploadFile.getOriginalFilename(); / 生成新文件名 / UUID.randomUUID(); String newName = IDUtils.genImageName(); newName = newName + oldName.substring(oldName.lastIndexOf(.); / 图片上传 String imagePath = new DateTime().toString(/yyyy/MM/dd); / 设置用户属性, 包括appid, secretId和SecretKey / 这些属性可以通过cos控制台获取(/cos) long appId = 1000000; String secretId = xxxxxxxxxxxxxxxxxxxxxxxxxxx; String secretKey = xxxxxxxxxxxxxxxxxxxxxxxxxx; / 设置要操作的bucket String bucketName = xxxxxxxxx; / 初始化客户端配置 ClientConfig clientConfig = new ClientConfig(); / 设置bucket所在的区域,比如广州(gz), 天津(tj) clientConfig.setRegion(gz); / 初始化秘钥信息 Credentials cred = new Credentials(appId, secretId, secretKey); / 初始化cosClient COSClient cosClient = new COSClient(clientConfig, cred); / / 文件操作 / / / 1. 上传文件(默认不覆盖) / 将本地的local_file_1.txt上传到bucket下的根分区下,并命名为sample_file.txt / 默认不覆盖, 如果cos上已有文件, 则返回错误 String cosFilePath = /images+imagePath+/+newName; byte localFilePath1 = uploadFile.getBytes(); UploadFileRequest uploadFileRequest = new UploadFileRequest(bucketName, cosFilePath, localFilePath1); uploadFileRequest.setEnableSavePoint(false); uploadFileRequest.setEableShaDigest(false); String uploadFileRet = cosClient.uploadFile(uploadFileRequest); /System.out.println(upload file ret: + uploadFileRet); String json=JsonUtils.objectToJson(uploadFileRet); /System.out.println(json.toString(); resultMap.put(error, 0); resultMap.put(url, IMAGE_BASE_URL +/images+imagePath+/+newName); return resultMap; catch (Exception e) resultMap.put(error, 1); resultMap.put(message, 文件上传发生异常); return resultMap; 这个IMAGE_BASE_URL就是这个对象存储的位置。例如你随便上传一个文件的时候,都会给你一个文件的地址的前缀部分。完成之后可以在控制台查看,或者网址访问,如果需要图片的时候,就把这个url拿出用即可,例如我就是放在img标签的src里就可以直接使用了。前面的工具类IDUtils.javajava view plain copy print?在CODE上查看代码片派生到我的代码片public class IDUtils /* * 图片名生成 */ public static S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 调换单位公寓申请书范文
- 觉醒毕业论文摘要
- 疫情期间党课创新
- 消防安全基础知识会议
- 辉瑞面试成功攻略
- 2025-2026学年湖北新八校联考高二上学期10月考物理B卷含答案
- 均安消防安全事故分析
- 营销面试通关秘籍
- 课程讲授发言稿
- 污水厂尾水处理与排放管理技术方案
- 2025年全国法制宣传日宪法知识竞赛考试题库及答案(240题)
- T-GXAS 551-2023 工业技术改造固定资产投资项目节能验收规范
- Unit 5 Humans and nature Lesson 1 A Sea Story 说课 课件-2024-2025学年高中英语北师大版(2019)必修第二册
- 2024-2025年全国(实验室)安全及处理知识考试题库与答案
- 艺术展览授权协议
- 宣传工作实务-形考任务三-国开(FJ)-参考资料
- 2024年中国数据采集产品市场调查研究报告
- 2024-2025学年湖北省武汉市小升初英语试卷与参考答案
- 给排水工程监理实施细则
- 12《与朱元思书》公开课一等奖创新教学设计
- 斯坦福大学人生设计课 (美比尔·博内特 戴夫·伊万斯)
评论
0/150
提交评论