bucket_op.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711
  1. // Copyright (c) 2017, Tencent Inc.
  2. // All rights reserved.
  3. //
  4. // Author: sevenyou <sevenyou@tencent.com>
  5. // Created: 07/13/17
  6. // Description:
  7. #pragma once
  8. #include "cos_sys_config.h"
  9. #include "op/base_op.h"
  10. #include "op/cos_result.h"
  11. #include "request/bucket_req.h"
  12. #include "request/data_process_req.h"
  13. #include "request/auditing_req.h"
  14. #include "response/bucket_resp.h"
  15. #include "response/data_process_resp.h"
  16. #include "response/auditing_resp.h"
  17. namespace qcloud_cos {
  18. /// \brief 封装了Bucket相关的操作
  19. class BucketOp : public BaseOp {
  20. public:
  21. /// \brief BucketOp构造函数
  22. ///
  23. /// \param cos_conf Cos配置
  24. explicit BucketOp(const SharedConfig& config) : BaseOp(config) {}
  25. /// \brief BucketOp析构函数
  26. virtual ~BucketOp() {}
  27. /// \brief 判断bucket是否存在
  28. bool IsBucketExist(const std::string& bucket_name);
  29. /// \brief 获取Bucket所在Location
  30. std::string GetBucketLocation(const std::string& bucket_name);
  31. /// \brief 创建一个Bucket
  32. /// (详见:https://www.qcloud.com/document/product/436/7738)
  33. ///
  34. /// \param req PutBucket请求
  35. /// \param resp PutBucket返回
  36. ///
  37. /// \return 本次请求的调用情况(如状态码等)
  38. CosResult PutBucket(const PutBucketReq& req, PutBucketResp* resp,
  39. bool change_backup_domain = false);
  40. /// \brief 确认Bucket是否存在
  41. /// (详见:https://cloud.tencent.com/document/product/436/7735)
  42. ///
  43. /// \param req HeadBucket请求
  44. /// \param resp HeadBucket返回
  45. ///
  46. /// \return 本次请求的调用情况(如状态码等)
  47. CosResult HeadBucket(const HeadBucketReq& req, HeadBucketResp* resp,
  48. bool change_backup_domain = false);
  49. /// \brief 列出Bucket下的部分或者全部Object
  50. /// (详见:https://www.qcloud.com/document/product/436/7734)
  51. ///
  52. /// \param req GetBucket请求
  53. /// \param resp GetBucket返回
  54. ///
  55. /// \return 本次请求的调用情况(如状态码等)
  56. CosResult GetBucket(const GetBucketReq& req, GetBucketResp* resp,
  57. bool change_backup_domain = false);
  58. CosResult ListMultipartUpload(const ListMultipartUploadReq& req,
  59. ListMultipartUploadResp* resp,
  60. bool change_backup_domain = false);
  61. /// \brief 删除Bucket
  62. ///
  63. /// \param req DeleteBucket请求
  64. /// \param resp DeleteBucket返回
  65. ///
  66. /// \return 本次请求的调用情况(如状态码等)
  67. CosResult DeleteBucket(const DeleteBucketReq& req, DeleteBucketResp* resp,
  68. bool change_backup_domain = false);
  69. /// \brief 获得存储桶的版本控制信息
  70. /// (详见:https://cloud.tencent.com/document/product/436/8597)
  71. ///
  72. /// \param req GetBucketVersioning请求
  73. /// \param resp GetBucketVersioning返回
  74. ///
  75. /// \return 本次请求的调用情况(如状态码等)
  76. CosResult GetBucketVersioning(const GetBucketVersioningReq& req,
  77. GetBucketVersioningResp* resp,
  78. bool change_backup_domain = false);
  79. /// \brief 启用或者暂停存储桶的版本控制功能
  80. /// (详见:https://cloud.tencent.com/document/product/436/8591)
  81. ///
  82. /// \param req PutBucketVersioning请求
  83. /// \param resp PutBucketVersioning返回
  84. ///
  85. /// \return 本次请求的调用情况(如状态码等)
  86. CosResult PutBucketVersioning(const PutBucketVersioningReq& req,
  87. PutBucketVersioningResp* resp,
  88. bool change_backup_domain = false);
  89. /// \brief 列出Bucket下的跨域复制配置
  90. ///
  91. /// \param req GetBucketReplication请求
  92. /// \param resp GetBucketReplication返回
  93. ///
  94. /// \return 本次请求的调用情况(如状态码等)
  95. CosResult GetBucketReplication(const GetBucketReplicationReq& req,
  96. GetBucketReplicationResp* resp,
  97. bool change_backup_domain = false);
  98. /// \brief 增加/替换Bucket下的跨域复制配置
  99. ///
  100. /// \param req PutBucketReplication请求
  101. /// \param resp PutBucketReplication返回
  102. ///
  103. /// \return 本次请求的调用情况(如状态码等)
  104. CosResult PutBucketReplication(const PutBucketReplicationReq& req,
  105. PutBucketReplicationResp* resp,
  106. bool change_backup_domain = false);
  107. /// \brief 删除Bucket下的跨域复制配置
  108. ///
  109. /// \param req DeleteBucketReplication请求
  110. /// \param resp DeleteBucketReplication返回
  111. ///
  112. /// \return 本次请求的调用情况(如状态码等)
  113. CosResult DeleteBucketReplication(const DeleteBucketReplicationReq& req,
  114. DeleteBucketReplicationResp* resp,
  115. bool change_backup_domain = false);
  116. /// \brief 列出Bucket下的生命周期配置
  117. ///
  118. /// \param req GetBucketLifecycle请求
  119. /// \param resp GetBucketLifecycle返回
  120. ///
  121. /// \return 本次请求的调用情况(如状态码等)
  122. CosResult GetBucketLifecycle(const GetBucketLifecycleReq& req,
  123. GetBucketLifecycleResp* resp,
  124. bool change_backup_domain = false);
  125. /// \brief 增加/替换Bucket下的生命周期配置
  126. ///
  127. /// \param req PutBucketLifecycle请求
  128. /// \param resp PutBucketLifecycle返回
  129. ///
  130. /// \return 本次请求的调用情况(如状态码等)
  131. CosResult PutBucketLifecycle(const PutBucketLifecycleReq& req,
  132. PutBucketLifecycleResp* resp,
  133. bool change_backup_domain = false);
  134. /// \brief 删除Bucket下的生命周期配置
  135. ///
  136. /// \param req DeleteBucketLifecycle请求
  137. /// \param resp DeleteBucketLifecycle返回
  138. ///
  139. /// \return 本次请求的调用情况(如状态码等)
  140. CosResult DeleteBucketLifecycle(const DeleteBucketLifecycleReq& req,
  141. DeleteBucketLifecycleResp* resp,
  142. bool change_backup_domain = false);
  143. /// \brief 列出Bucket下的ACL
  144. ///
  145. /// \param req GetBucketACL请求
  146. /// \param resp GetBucketACL返回
  147. ///
  148. /// \return 本次请求的调用情况(如状态码等)
  149. CosResult GetBucketACL(const GetBucketACLReq& req, GetBucketACLResp* resp,
  150. bool change_backup_domain = false);
  151. /// \brief 增加/替换Bucket下的ACL, 可以通过Header或者Body传入ACL信息
  152. /// 注意Header 和 Body 只能选择其中一种,否则响应返回会冲突
  153. ///
  154. /// \param req PutBucketACL请求
  155. /// \param resp PutBucketACL返回
  156. ///
  157. /// \return 本次请求的调用情况(如状态码等)
  158. CosResult PutBucketACL(const PutBucketACLReq& req, PutBucketACLResp* resp,
  159. bool change_backup_domain = false);
  160. /// \brief 获取Bucket的权限策略
  161. ///
  162. /// \param req GetBucketPolicy请求
  163. /// \param resp GetBucketPolicy返回
  164. ///
  165. /// \return 本次请求的调用情况(如状态码等)
  166. CosResult GetBucketPolicy(const GetBucketPolicyReq& req, GetBucketPolicyResp* resp,
  167. bool change_backup_domain = false);
  168. /// \brief 写入/替换Bucket的权限策略,通过Body传入
  169. ///
  170. /// \param req PutBucketPolicy请求
  171. /// \param resp PutBucketPolicy返回
  172. ///
  173. /// \return 本次请求的调用情况(如状态码等)
  174. CosResult PutBucketPolicy(const PutBucketPolicyReq& req, PutBucketPolicyResp* resp,
  175. bool change_backup_domain = false);
  176. /// \brief 删除Bucket的权限策略
  177. ///
  178. /// \param req DeleteBucketPolicy请求
  179. /// \param resp DeleteBucketPolicy返回
  180. ///
  181. /// \return 本次请求的调用情况(如状态码等)
  182. CosResult DeleteBucketPolicy(const DeleteBucketPolicyReq& req, DeleteBucketPolicyResp* resp,
  183. bool change_backup_domain = false);
  184. /// \brief 列出Bucket下的CORS
  185. ///
  186. /// \param req GetBucketCORS请求
  187. /// \param resp GetBucketCORS返回
  188. ///
  189. /// \return 本次请求的调用情况(如状态码等)
  190. CosResult GetBucketCORS(const GetBucketCORSReq& req, GetBucketCORSResp* resp,
  191. bool change_backup_domain = false);
  192. /// \brief 增加/替换Bucket下的CORS
  193. ///
  194. /// \param req PutBucketCORS请求
  195. /// \param resp PutBucketCORS返回
  196. ///
  197. /// \return 本次请求的调用情况(如状态码等)
  198. CosResult PutBucketCORS(const PutBucketCORSReq& req, PutBucketCORSResp* resp,
  199. bool change_backup_domain = false);
  200. /// \brief 删除Bucket下的CORS
  201. ///
  202. /// \param req DeleteBucketCORS请求
  203. /// \param resp DeleteBucketCORS返回
  204. ///
  205. /// \return 本次请求的调用情况(如状态码等)
  206. CosResult DeleteBucketCORS(const DeleteBucketCORSReq& req,
  207. DeleteBucketCORSResp* resp,
  208. bool change_backup_domain = false);
  209. /// \brief 列出Bucket下的部分或者全部Object(包括多版本)
  210. ///
  211. /// \param req GetBucketObjectVersions请求
  212. /// \param resp GetBucketObjectVersions返回
  213. ///
  214. /// \return 本次请求的调用情况(如状态码等)
  215. CosResult GetBucketObjectVersions(const GetBucketObjectVersionsReq& req,
  216. GetBucketObjectVersionsResp* resp,
  217. bool change_backup_domain = false);
  218. /// \brief 获取Bucket所在Location
  219. ///
  220. /// \param req GetBucketLocation请求
  221. /// \param resp GetBucketLocation返回
  222. ///
  223. /// \return 本次请求的调用情况(如状态码等)
  224. CosResult GetBucketLocation(const GetBucketLocationReq& req,
  225. GetBucketLocationResp* resp,
  226. bool change_backup_domain = false);
  227. // TODO(sevenyou)
  228. // std::string ListMultipartUploads();
  229. /// \brief 为源存储桶开启日志记录
  230. /// \brief https://cloud.tencent.com/document/product/436/17054
  231. /// \param req PutBucketLogging请求
  232. /// \param resp PutBucketLogging返回
  233. ///
  234. /// \return 本次请求的调用情况(如状态码等)
  235. CosResult PutBucketLogging(const PutBucketLoggingReq& req,
  236. PutBucketLoggingResp* resp,
  237. bool change_backup_domain = false);
  238. /// \brief 用于获取源存储桶的日志配置信息
  239. /// \brief https://cloud.tencent.com/document/product/436/17053
  240. /// \param req GetBucketLogging请求
  241. /// \param resp GetBucketLogging返回
  242. ///
  243. /// \return 本次请求的调用情况(如状态码等)
  244. CosResult GetBucketLogging(const GetBucketLoggingReq& req,
  245. GetBucketLoggingResp* resp,
  246. bool change_backup_domain = false);
  247. /// \brief 用于存储桶绑定自定义域名
  248. /// \brief
  249. /// \param req PutBucketDomain请求
  250. /// \param resp PutBucketDomain返回
  251. ///
  252. /// \return 本次请求的调用情况(如状态码等)
  253. CosResult PutBucketDomain(const PutBucketDomainReq& req,
  254. PutBucketDomainResp* resp,
  255. bool change_backup_domain = false);
  256. /// \brief 用于获取存储桶绑定自定义域名
  257. /// \brief
  258. /// \param req GetBucketDomain请求
  259. /// \param resp GetBucketDomain返回
  260. ///
  261. /// \return 本次请求的调用情况(如状态码等)
  262. CosResult GetBucketDomain(const GetBucketDomainReq& req,
  263. GetBucketDomainResp* resp,
  264. bool change_backup_domain = false);
  265. /// \brief 存储桶配置静态网站,通过传入 XML
  266. /// 格式的配置文件进行配置,文件大小限制为64KB \brief
  267. /// https://cloud.tencent.com/document/product/436/31930 \param req
  268. /// PutBucketWebsite请求 \param resp PutBucketWebsite返回
  269. ///
  270. /// \return 本次请求的调用情况(如状态码等)
  271. CosResult PutBucketWebsite(const PutBucketWebsiteReq& req,
  272. PutBucketWebsiteResp* resp,
  273. bool change_backup_domain = false);
  274. /// \brief 获取与存储桶关联的静态网站配置信息.
  275. /// \brief https://cloud.tencent.com/document/product/436/31929
  276. /// \param req GetBucketWebsite请求
  277. /// \param resp GetBucketWebsite返回
  278. ///
  279. /// \return 本次请求的调用情况(如状态码等)
  280. CosResult GetBucketWebsite(const GetBucketWebsiteReq& req,
  281. GetBucketWebsiteResp* resp,
  282. bool change_backup_domain = false);
  283. /// \brief 删除存储桶中的静态网站配置.
  284. /// \brief https://cloud.tencent.com/document/product/436/31928
  285. /// \param req DeleteBucketWebsite请求
  286. /// \param resp DeleteBucketWebsite返回
  287. ///
  288. /// \return 本次请求的调用情况(如状态码等)
  289. CosResult DeleteBucketWebsite(const DeleteBucketWebsiteReq& req,
  290. DeleteBucketWebsiteResp* resp,
  291. bool change_backup_domain = false);
  292. /// \brief 为已存在的Bucket设置标签.
  293. /// \brief https://cloud.tencent.com/document/product/436/34838
  294. /// \param req PutBucketTagging请求
  295. /// \param resp PutBucketTagging返回
  296. ///
  297. /// \return 本次请求的调用情况(如状态码等)
  298. CosResult PutBucketTagging(const PutBucketTaggingReq& req,
  299. PutBucketTaggingResp* resp,
  300. bool change_backup_domain = false);
  301. /// \brief 查询指定存储桶下已有的存储桶标签.
  302. /// \brief https://cloud.tencent.com/document/product/436/34837
  303. /// \param req GetBucketTagging请求
  304. /// \param resp GetBucketTagging返回
  305. ///
  306. /// \return 本次请求的调用情况(如状态码等)
  307. CosResult GetBucketTagging(const GetBucketTaggingReq& req,
  308. GetBucketTaggingResp* resp,
  309. bool change_backup_domain = false);
  310. /// \brief 删除指定存储桶下已有的存储桶标签.
  311. /// \brief https://cloud.tencent.com/document/product/436/34836
  312. /// \param req DeleteBucketTagging请求
  313. /// \param resp DeleteBucketTagging返回
  314. ///
  315. /// \return 本次请求的调用情况(如状态码等)
  316. CosResult DeleteBucketTagging(const DeleteBucketTaggingReq& req,
  317. DeleteBucketTaggingResp* resp,
  318. bool change_backup_domain = false);
  319. /// \brief 用于在存储桶中创建清单任务.
  320. /// \brief https://cloud.tencent.com/document/product/436/33707
  321. /// \param req PutBucketinventory请求
  322. /// \param resp PutBucketinventory返回
  323. ///
  324. /// \return 本次请求的调用情况(如状态码等)
  325. CosResult PutBucketInventory(const PutBucketInventoryReq& req,
  326. PutBucketInventoryResp* resp,
  327. bool change_backup_domain = false);
  328. /// \brief 查询存储桶中用户的清单任务信息.
  329. /// \brief https://cloud.tencent.com/document/product/436/33705
  330. /// \param req GetBucketinventory请求
  331. /// \param resp GetBucketinventory返回
  332. ///
  333. /// \return 本次请求的调用情况(如状态码等)
  334. CosResult GetBucketInventory(const GetBucketInventoryReq& req,
  335. GetBucketInventoryResp* resp,
  336. bool change_backup_domain = false);
  337. /// \brief 请求返回一个存储桶中的所有清单任务.
  338. /// \brief https://cloud.tencent.com/document/product/436/33706
  339. /// \param req ListBucketInventoryConfigurations请求
  340. /// \param resp ListBucketInventoryConfigurations返回
  341. ///
  342. /// \return 本次请求的调用情况(如状态码等)
  343. CosResult ListBucketInventoryConfigurations(
  344. const ListBucketInventoryConfigurationsReq& req,
  345. ListBucketInventoryConfigurationsResp* resp,
  346. bool change_backup_domain = false);
  347. /// \brief 用于删除存储桶中指定的清单任务.
  348. /// \brief https://cloud.tencent.com/document/product/436/33704
  349. /// \param req DeleteBucketinventory请求
  350. /// \param resp DeleteBucketinventory返回
  351. ///
  352. /// \return 本次请求的调用情况(如状态码等)
  353. CosResult DeleteBucketInventory(const DeleteBucketInventoryReq& req,
  354. DeleteBucketInventoryResp* resp,
  355. bool change_backup_domain = false);
  356. /// \brief 用于为存储桶设置 Referer 白名单或者黑名单.
  357. /// \brief https://cloud.tencent.com/document/product/436/32492
  358. /// \param req PutBucketReferer请求
  359. /// \param resp PutBucketReferer响应
  360. ///
  361. /// \return 本次请求的调用情况(如状态码等)
  362. CosResult PutBucketReferer(const PutBucketRefererReq& req,
  363. PutBucketRefererResp* resp,
  364. bool change_backup_domain = false);
  365. /// \brief 读取存储桶 Referer 白名单或者黑名单.
  366. /// \brief https://cloud.tencent.com/document/product/436/32493
  367. /// \param req GetBucketReferer请求
  368. /// \param resp GetBucketReferer响应
  369. ///
  370. /// \return 本次请求的调用情况(如状态码等)
  371. CosResult GetBucketReferer(const GetBucketRefererReq& req,
  372. GetBucketRefererResp* resp,
  373. bool change_backup_domain = false);
  374. /// \brief 列举直播通道
  375. /// \param req ListLiveChannelReq请求
  376. /// \param resp ListLiveChannelResp返回
  377. ///
  378. /// \return 本次请求的调用情况(如状态码等)
  379. CosResult ListLiveChannel(const ListLiveChannelReq& req,
  380. ListLiveChannelResp* resp,
  381. bool change_backup_domain = false);
  382. /// \brief 配置存储桶智能分层
  383. ///
  384. /// \param req PutBucketIntelligentTiering请求
  385. /// \param resp PutBucketIntelligentTiering返回
  386. ///
  387. /// \return 本次请求的调用情况(如状态码等)
  388. CosResult PutBucketIntelligentTiering(
  389. const PutBucketIntelligentTieringReq& req,
  390. PutBucketIntelligentTieringResp* resp,
  391. bool change_backup_domain = false);
  392. /// \brief 获取存储桶智能分层配置
  393. ///
  394. /// \param req GetBucketIntelligentTiering请求
  395. /// \param resp GetBucketIntelligentTiering返回
  396. ///
  397. /// \return 本次请求的调用情况(如状态码等)
  398. CosResult GetBucketIntelligentTiering(
  399. const GetBucketIntelligentTieringReq& req,
  400. GetBucketIntelligentTieringResp* resp,
  401. bool change_backup_domain = false);
  402. /// \brief 存储桶绑定ci
  403. ///
  404. /// \param req PutBucketToCIReq请求
  405. /// \param resp PutBucketToCIResp返回
  406. ///
  407. /// \return 本次请求的调用情况(如状态码等)
  408. CosResult PutBucketToCI(const PutBucketToCIReq& req,
  409. PutBucketToCIResp* resp);
  410. /// \brief 开通文档预览
  411. /// \param req CreateDocBucket请求
  412. /// \param resp CreateDocBucket返回
  413. ///
  414. /// \return 本次请求的调用情况(如状态码等)
  415. CosResult CreateDocBucket(const CreateDocBucketReq& req,
  416. CreateDocBucketResp* resp);
  417. /// \brief 提交文档转码任务
  418. /// \brief https://cloud.tencent.com/document/product/436/54056
  419. /// \param req CreateDocProcessJobs请求
  420. /// \param resp CreateDocProcessJobs返回
  421. ///
  422. /// \return 本次请求的调用情况(如状态码等)
  423. CosResult CreateDocProcessJobs(const CreateDocProcessJobsReq& req,
  424. CreateDocProcessJobsResp* resp);
  425. /// \brief 查询指定的文档转码任务
  426. /// \brief https://cloud.tencent.com/document/product/436/54095
  427. /// \param req DescribeDocProcessJob请求
  428. /// \param resp DescribeDocProcessJob返回
  429. ///
  430. /// \return 本次请求的调用情况(如状态码等)
  431. CosResult DescribeDocProcessJob(const DescribeDocProcessJobReq& req,
  432. DescribeDocProcessJobResp* resp);
  433. /// \brief 拉取符合条件的的文档转码任务
  434. /// \brief https://cloud.tencent.com/document/product/436/54096
  435. /// \param req DescribeDocProcessJobs请求
  436. /// \param resp DescribeDocProcessJobs返回
  437. ///
  438. /// \return 本次请求的调用情况(如状态码等)
  439. CosResult DescribeDocProcessJobs(const DescribeDocProcessJobsReq& req,
  440. DescribeDocProcessJobsResp* resp);
  441. /// \brief 查询文档转码队列
  442. /// \brief https://cloud.tencent.com/document/product/436/54055
  443. /// \param req DescribeDocProcessQueues请求
  444. /// \param resp DescribeDocProcessQueues返回
  445. ///
  446. /// \return 本次请求的调用情况(如状态码等)
  447. CosResult DescribeDocProcessQueues(const DescribeDocProcessQueuesReq& req,
  448. DescribeDocProcessQueuesResp* resp);
  449. /// \brief 更新文档转码队列
  450. /// \brief https://cloud.tencent.com/document/product/436/54094
  451. /// \param req UpdateDocProcessQueue请求
  452. /// \param resp UpdateDocProcessQueue返回
  453. ///
  454. /// \return 本次请求的调用情况(如状态码等)
  455. CosResult UpdateDocProcessQueue(const UpdateDocProcessQueueReq& req,
  456. UpdateDocProcessQueueResp* resp);
  457. /// \brief 查询媒体处理开通状态
  458. /// \brief https://cloud.tencent.com/document/product/436/48988
  459. /// \param req DescribeMediaBuckets请求
  460. /// \param resp DescribeMediaBuckets返回
  461. ///
  462. /// \return 本次请求的调用情况(如状态码等)
  463. CosResult DescribeMediaBuckets(const DescribeMediaBucketsReq& req,
  464. DescribeMediaBucketsResp* resp);
  465. /// \brief 开通媒体处理
  466. /// \brief https://cloud.tencent.com/document/product/436/72824
  467. /// \param req CreateMediaBucketReq请求
  468. /// \param resp CreateMediaBucketResp返回
  469. ///
  470. /// \return 本次请求的调用情况(如状态码等)
  471. CosResult CreateMediaBucket(const CreateMediaBucketReq& req,
  472. CreateMediaBucketResp* resp);
  473. /// \brief 获取媒体文件信息
  474. /// \brief https://cloud.tencent.com/document/product/436/55672
  475. /// \param req GetMediainfo请求
  476. /// \param resp GetMediainfo返回
  477. ///
  478. /// \return 本次请求的调用情况(如状态码等)
  479. CosResult GetMediainfo(const GetMediaInfoReq& req, GetMediaInfoResp* resp);
  480. /// \brief 搜索媒体处理队列
  481. /// \brief https://cloud.tencent.com/document/product/436/54045
  482. /// \param req DescribeMediaQueues请求
  483. /// \param resp DescribeMediaQueues返回
  484. ///
  485. /// \return 本次请求的调用情况(如状态码等)
  486. CosResult DescribeMediaQueues(const DescribeMediaQueuesReq& req, DescribeQueuesResp* resp);
  487. /// \brief 更新媒体处理队列
  488. /// \brief https://cloud.tencent.com/document/product/436/54046
  489. /// \param req UpdateMediaQueue请求
  490. /// \param resp UpdateMediaQueue返回
  491. ///
  492. /// \return 本次请求的调用情况(如状态码等)
  493. CosResult UpdateMediaQueue(const UpdateMediaQueueReq& req,
  494. UpdateQueueResp* resp);
  495. /// \brief 查询文件处理开通状态
  496. /// \brief https://cloud.tencent.com/document/product/460/95747
  497. /// \param req DescribeFileBuckets请求
  498. /// \param resp DescribeFileBuckets返回
  499. ///
  500. /// \return 本次请求的调用情况(如状态码等)
  501. CosResult DescribeFileBuckets(const DescribeFileBucketsReq& req,
  502. DescribeFileBucketsResp* resp);
  503. /// \brief 开通文件处理
  504. /// \brief https://cloud.tencent.com/document/product/460/86377
  505. /// \param req CreateFileBucketReq请求
  506. /// \param resp CreateFileBucketResp返回
  507. ///
  508. /// \return 本次请求的调用情况(如状态码等)
  509. CosResult CreateFileBucket(const CreateFileBucketReq& req,
  510. CreateFileBucketResp* resp);
  511. /// \brief 提交数据处理任务
  512. /// \brief https://cloud.tencent.com/document/product/436/83110
  513. /// \param req CreateFileProcessJobs请求
  514. /// \param resp CreateFileProcessJobs返回
  515. ///
  516. /// \return 本次请求的调用情况(如状态码等)
  517. CosResult CreateDataProcessJobs(const CreateDataProcessJobsReq& req,
  518. CreateDataProcessJobsResp* resp);
  519. /// \brief 取消数据处理任务
  520. /// \brief https://cloud.tencent.com/document/product/436/85082
  521. /// \param req CancelFileProcessJobs请求
  522. /// \param resp CancelFileProcessJobs返回
  523. ///
  524. /// \return 本次请求的调用情况(如状态码等)
  525. CosResult CancelDataProcessJob(const CancelDataProcessJobReq& req,
  526. CancelDataProcessJobResp* resp);
  527. /// \brief 提交数据处理任务
  528. /// \param req DescribeDataProcessJobs请求
  529. /// \param resp DescribeDataProcessJobs返回
  530. ///
  531. /// \return 本次请求的调用情况(如状态码等)
  532. CosResult DescribeDataProcessJob(const DescribeDataProcessJobReq& req,
  533. DescribeDataProcessJobResp* resp);
  534. /// \brief 图片批量审核
  535. /// \brief https://cloud.tencent.com/document/product/436/63593
  536. /// \param req BatchImageAuditing请求
  537. /// \param resp BatchImageAuditing返回
  538. ///
  539. /// \return 本次请求的调用情况(如状态码等)
  540. CosResult BatchImageAuditing(const BatchImageAuditingReq& req,
  541. BatchImageAuditingResp* resp);
  542. /// \brief 查询图片审核任务结果
  543. /// \brief https://cloud.tencent.com/document/product/436/68904
  544. /// \param req DescribeImageAuditingJob请求
  545. /// \param resp DescribeImageAuditingJob返回
  546. ///
  547. /// \return 本次请求的调用情况(如状态码等)
  548. CosResult DescribeImageAuditingJob(const DescribeImageAuditingJobReq& req,
  549. DescribeImageAuditingJobResp* resp);
  550. /// \brief 提交视频审核任务
  551. /// \brief https://cloud.tencent.com/document/product/436/47316
  552. /// \param req DescribeVideoAuditingJob请求
  553. /// \param resp DescribeVideoAuditingJob返回
  554. ///
  555. /// \return 本次请求的调用情况(如状态码等)
  556. CosResult CreateVideoAuditingJob(const CreateVideoAuditingJobReq& req,
  557. CreateVideoAuditingJobResp* resp);
  558. /// \brief 查询视频审核任务结果
  559. /// \brief https://cloud.tencent.com/document/product/436/47317
  560. /// \param req DescribeVideoAuditingJob请求
  561. /// \param resp DescribeVideoAuditingJob返回
  562. ///
  563. /// \return 本次请求的调用情况(如状态码等)
  564. CosResult DescribeVideoAuditingJob(const DescribeVideoAuditingJobReq& req,
  565. DescribeVideoAuditingJobResp* resp);
  566. /// \brief 提交音频审核任务
  567. /// \brief https://cloud.tencent.com/document/product/436/54063
  568. /// \param req DescribeAudioAuditingJob请求
  569. /// \param resp DescribeAudioAuditingJob返回
  570. ///
  571. /// \return 本次请求的调用情况(如状态码等)
  572. CosResult CreateAudioAuditingJob(const CreateAudioAuditingJobReq& req,
  573. CreateAudioAuditingJobResp* resp);
  574. /// \brief 查询音频审核任务结果
  575. /// \brief https://cloud.tencent.com/document/product/436/54064
  576. /// \param req DescribeAudioAuditingJob请求
  577. /// \param resp DescribeAudioAuditingJob返回
  578. ///
  579. /// \return 本次请求的调用情况(如状态码等)
  580. CosResult DescribeAudioAuditingJob(const DescribeAudioAuditingJobReq& req,
  581. DescribeAudioAuditingJobResp* resp);
  582. /// \brief 提交文本审核任务
  583. /// \brief https://cloud.tencent.com/document/product/436/56289
  584. /// \param req DescribeTextAuditingJob请求
  585. /// \param resp DescribeTextAuditingJob返回
  586. ///
  587. /// \return 本次请求的调用情况(如状态码等)
  588. CosResult CreateTextAuditingJob(const CreateTextAuditingJobReq& req,
  589. CreateTextAuditingJobResp* resp);
  590. /// \brief 查询文本审核任务结果
  591. /// \brief https://cloud.tencent.com/document/product/436/56288
  592. /// \param req DescribeTextAuditingJob请求
  593. /// \param resp DescribeTextAuditingJob返回
  594. ///
  595. /// \return 本次请求的调用情况(如状态码等)
  596. CosResult DescribeTextAuditingJob(const DescribeTextAuditingJobReq& req,
  597. DescribeTextAuditingJobResp* resp);
  598. /// \brief 提交文档审核任务
  599. /// \brief https://cloud.tencent.com/document/product/436/59381
  600. /// \param req DescribeDocumentAuditingJob请求
  601. /// \param resp DescribeDocumentAuditingJob返回
  602. ///
  603. /// \return 本次请求的调用情况(如状态码等)
  604. CosResult CreateDocumentAuditingJob(const CreateDocumentAuditingJobReq& req,
  605. CreateDocumentAuditingJobResp* resp);
  606. /// \brief 查询文档审核任务结果
  607. /// \brief https://cloud.tencent.com/document/product/436/59382
  608. /// \param req DescribeDocumentAuditingJob请求
  609. /// \param resp DescribeDocumentAuditingJob返回
  610. ///
  611. /// \return 本次请求的调用情况(如状态码等)
  612. CosResult DescribeDocumentAuditingJob(const DescribeDocumentAuditingJobReq& req,
  613. DescribeDocumentAuditingJobResp* resp);
  614. /// \brief 提交网页审核任务
  615. /// \brief https://cloud.tencent.com/document/product/436/63958
  616. /// \param req DescribeWebPageAuditingJob请求
  617. /// \param resp DescribeWebPageAuditingJob返回
  618. ///
  619. /// \return 本次请求的调用情况(如状态码等)
  620. CosResult CreateWebPageAuditingJob(const CreateWebPageAuditingJobReq& req,
  621. CreateWebPageAuditingJobResp* resp);
  622. /// \brief 查询网页审核任务结果
  623. /// \brief https://cloud.tencent.com/document/product/436/63959
  624. /// \param req DescribeWebPageAuditingJob请求
  625. /// \param resp DescribeWebPageAuditingJob返回
  626. ///
  627. /// \return 本次请求的调用情况(如状态码等)
  628. CosResult DescribeWebPageAuditingJob(const DescribeWebPageAuditingJobReq& req,
  629. DescribeWebPageAuditingJobResp* resp);
  630. private:
  631. /// \brief 处理CI请求
  632. CosResult ProcessReq(const BucketReq& req, BaseResp* resp,
  633. bool is_ci_req = false);
  634. };
  635. } // namespace qcloud_cos