撸表情开发过程中使用腾讯云存储的接入实例分享
推荐一下一个有趣的表情包收集网站,也可以在线制作表情包,欢迎访问:撸表情
撸表情(http://www.lubiaoqing.com)这个网站是业余时间开发的一个网站,涉及到大量表情包的检索和存储,个人服务器肯定难以为继,所以选择了腾讯云存储。
在对接过程中,使用了腾讯云对象存储服务 Java SDK,下载地址:github项目
注意有个坑的地方就是必须是JDK1.7!!!
pom.xml 添加依赖
<dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>3.3</version>
</dependency>
然后相关API文档也是很完备的,如下:
文件操作
上传文件
方法原型
String uploadFile(UploadFileRequest request);
参数说明
参数名 | 类型 | 默认值 | 参数描述 |
---|---|---|---|
request | UploadFileRequest | 无 | 上传文件类型请求 |
request成员对象:
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的频控 |
转载于:https://www.cnblogs.com/semoon/p/6180899.html
撸表情开发过程中使用腾讯云存储的接入实例分享相关推荐
- Spring Boot中使用腾讯云短信服务
第一步:在腾讯云官方网站开通短信服务 第二部:开通后,在短信控制面板中找到国内短信 第三步:点击签名管理并创建签名 第五步:点击正文模板管理并创建正文模板 第六步:在pom文件中添加腾讯云短信依赖 & ...
- 【活动公告】Hackathon —— 腾讯云AI API接入迷你赛
一. 活动简介 编程马拉松(Hackathon)是将热爱软硬件开发的人聚集起来所举办的一项比赛,本次活动由腾讯云AI联合云+社区发起,希望让广大开发者体验到腾讯云AI的魅力.比赛过程中,参赛者可以尽情 ...
- 腾讯云存储上传图片前端处理
过程分析 图片上传主要分成三部分: 一.本地表单处理 1.表单美化 2.获取上传文件信息(选择.拖拽.一张.多张) 3.图片信息校验(格式.大小) 4.本地展示 二.调用接口获取上传需要的参数 1.引 ...
- springboot 最新腾讯云短信接入的坑(包含所有操作流程)
腾讯云接入短信,需要填写备案好的域名,且通过域名能正常访问到你的网站.如果你的服务器,域名全部都在腾讯云,请确保你的服务器可达,且域名已完成备案,域名的某个A记录正常(通常是www),通过这个记录值可 ...
- SDS分类图的更新 腾讯云存储深度解读
[编者Peter Ye按] 本篇文章的主体部分是腾讯云美女技术专家Vivian Lei在2017年11月8日第二届日知录企业存储峰会上的演讲<EB级别云存储是如何涨成的?>,本篇文章在日知 ...
- “数据湖存储”冠军杯足球赛开幕,腾讯云存储出征!
"数据湖存储"冠军杯是数据湖领域内的世界级赛事,随着云上"数据湖存储"产品理念的逐步普及,今年的比赛也获得了国内外众多球迷的关注.腾讯云以COS.GooseFS ...
- 【2022分布式存储峰会】腾讯云存储为您带来:云原生时代下的数据湖存储服务
大会时间:今日15:00-15:30 大会主题:云原生时代下的数据湖存储服务 2022年4月14日,由百易传媒 (DOIT) 与厦门大学信息学院联合主办的"2022分布式存储论坛峰会&quo ...
- 基于腾讯云存储网关 CSG 实现视频在线转码分发
背景 随着越来越多的传统业务云化和云端业务发展,数据上云和云端数据处理领域的需求爆发式增长.腾讯云存储网关CSG提供一键部署开箱即用的便捷模式,深度结合COS对象存储生态,为用户提供方便快捷的数据上云 ...
- 2021全球分布式云大会,腾讯云存储斩获分布式存储运营领袖奖
12月16日,以"引领分布式云变革 助力湾区数字经济"为主题的全球分布式云大会在深圳隆重召开,腾讯云存储凭借车载斗量的存储规模及用户量,在一众企业中脱颖而出,荣获"分布式 ...
最新文章
- aspose.cells 无法读取公式值_隐藏 Excel表格、公式的9种方法
- 华人一作获最佳论文奖,第四大视觉顶会BMVC大奖出炉!
- RHEL 5 密码破解和防止别人通过单用户模式修改密码
- .NET自动化测试工具链:Selenium+NUnit+ExtentReport
- java高并发(十一)同步容器
- 开源软件 许可证密钥_自由和开源软件-1中的重要许可证
- C/C++ 文件的后缀名
- php中会话技术,php session会话技术详解
- 我死了,你会娶别的女人吗?
- PLSQL Split分割字符串
- getssdtserviceid_[下载]发个获得SSDT函数名和索引号的代码
- Windows环境下用nmake编译libevent
- 蓝牙解码格式哪个最好_拆解报告:山灵UP2 蓝牙音频接收器
- no zuo no die
- 全球及中国汽车零部件用模塑料行业盈利预测及投资前景分析报告2021年版
- (HTML+CSS+JS)仿小米官网首页 含源码
- python输入一个整数、输出该整数的所有素数因子_一个正整数的所有质数因子
- 打开*.acb格式音频文件
- Ubuntu Kylin 20.10 优麒麟操作系统安装与体验
- 中专毕业后我的七年(励志篇,年轻人必看)
热门文章
- java偶数和_Java编程计算1-100之间所有偶数的和。
- LeetCode算法入门- Reverse Integer-day6
- client中周期性边界_(整理)周期性边界条件.
- go var 一个整数_Go语言学习基础-值、变量、常量
- python类和oop基础知识
- (DFS)n皇后问题
- apache php日志配置,HTML_初学:apache与php基本配置,1、APACHE的日志主要分为“ - phpStudy...
- mysql手动启动1067错误_解决MySQL启动时万恶的1067错误(转)
- android onclick方法吗,Android中button的onClick事件几种方法
- 李沐老师的《动手学深度学习PyTorch》中的d2lzh_python包的安装