// Copyright (c) 2017, Tencent Inc. // All rights reserved. // // Author: sevenyou // Created: 07/13/17 // Description: #ifndef BUCKETOP_H #define BUCKETOP_H #pragma once #include "cos_sys_config.h" #include "op/base_op.h" #include "op/cos_result.h" #include "request/bucket_req.h" #include "response/bucket_resp.h" #include "request/data_process_req.h" #include "response/data_process_resp.h" namespace qcloud_cos { /// \brief 封装了Bucket相关的操作 class BucketOp : public BaseOp { public: /// \brief BucketOp构造函数 /// /// \param cos_conf Cos配置 explicit BucketOp(const SharedConfig& config) : BaseOp(config) {} /// \brief BucketOp析构函数 virtual ~BucketOp() {} /// \brief 判断bucket是否存在 bool IsBucketExist(const std::string& bucket_name); /// \brief 获取Bucket所在Location std::string GetBucketLocation(const std::string& bucket_name); /// \brief 创建一个Bucket /// (详见:https://www.qcloud.com/document/product/436/7738) /// /// \param req PutBucket请求 /// \param resp PutBucket返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucket(const PutBucketReq& req, PutBucketResp* resp); /// \brief 确认Bucket是否存在 /// (详见:https://cloud.tencent.com/document/product/436/7735) /// /// \param req HeadBucket请求 /// \param resp HeadBucket返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult HeadBucket(const HeadBucketReq& req, HeadBucketResp* resp); /// \brief 列出Bucket下的部分或者全部Object /// (详见:https://www.qcloud.com/document/product/436/7734) /// /// \param req GetBucket请求 /// \param resp GetBucket返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucket(const GetBucketReq& req, GetBucketResp* resp); CosResult ListMultipartUpload(const ListMultipartUploadReq& req, ListMultipartUploadResp* resp); /// \brief 删除Bucket /// /// \param req DeleteBucket请求 /// \param resp DeleteBucket返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult DeleteBucket(const DeleteBucketReq& req, DeleteBucketResp* resp); /// \brief 获得存储桶的版本控制信息 /// (详见:https://cloud.tencent.com/document/product/436/8597) /// /// \param req GetBucketVersioning请求 /// \param resp GetBucketVersioning返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketVersioning(const GetBucketVersioningReq& req, GetBucketVersioningResp* resp); /// \brief 启用或者暂停存储桶的版本控制功能 /// (详见:https://cloud.tencent.com/document/product/436/8591) /// /// \param req PutBucketVersioning请求 /// \param resp PutBucketVersioning返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketVersioning(const PutBucketVersioningReq& req, PutBucketVersioningResp* resp); /// \brief 列出Bucket下的跨域复制配置 /// /// \param req GetBucketReplication请求 /// \param resp GetBucketReplication返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketReplication(const GetBucketReplicationReq& req, GetBucketReplicationResp* resp); /// \brief 增加/替换Bucket下的跨域复制配置 /// /// \param req PutBucketReplication请求 /// \param resp PutBucketReplication返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketReplication(const PutBucketReplicationReq& req, PutBucketReplicationResp* resp); /// \brief 删除Bucket下的跨域复制配置 /// /// \param req DeleteBucketReplication请求 /// \param resp DeleteBucketReplication返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult DeleteBucketReplication(const DeleteBucketReplicationReq& req, DeleteBucketReplicationResp* resp); /// \brief 列出Bucket下的生命周期配置 /// /// \param req GetBucketLifecycle请求 /// \param resp GetBucketLifecycle返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketLifecycle(const GetBucketLifecycleReq& req, GetBucketLifecycleResp* resp); /// \brief 增加/替换Bucket下的生命周期配置 /// /// \param req PutBucketLifecycle请求 /// \param resp PutBucketLifecycle返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketLifecycle(const PutBucketLifecycleReq& req, PutBucketLifecycleResp* resp); /// \brief 删除Bucket下的生命周期配置 /// /// \param req DeleteBucketLifecycle请求 /// \param resp DeleteBucketLifecycle返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult DeleteBucketLifecycle(const DeleteBucketLifecycleReq& req, DeleteBucketLifecycleResp* resp); /// \brief 列出Bucket下的ACL /// /// \param req GetBucketACL请求 /// \param resp GetBucketACL返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketACL(const GetBucketACLReq& req, GetBucketACLResp* resp); /// \brief 增加/替换Bucket下的ACL, 可以通过Header或者Body传入ACL信息 /// 注意Header 和 Body 只能选择其中一种,否则响应返回会冲突 /// /// \param req PutBucketACL请求 /// \param resp PutBucketACL返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketACL(const PutBucketACLReq& req, PutBucketACLResp* resp); /// \brief 列出Bucket下的CORS /// /// \param req GetBucketCORS请求 /// \param resp GetBucketCORS返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketCORS(const GetBucketCORSReq& req, GetBucketCORSResp* resp); /// \brief 增加/替换Bucket下的CORS /// /// \param req PutBucketCORS请求 /// \param resp PutBucketCORS返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketCORS(const PutBucketCORSReq& req, PutBucketCORSResp* resp); /// \brief 删除Bucket下的CORS /// /// \param req DeleteBucketCORS请求 /// \param resp DeleteBucketCORS返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult DeleteBucketCORS(const DeleteBucketCORSReq& req, DeleteBucketCORSResp* resp); /// \brief 列出Bucket下的部分或者全部Object(包括多版本) /// /// \param req GetBucketObjectVersions请求 /// \param resp GetBucketObjectVersions返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketObjectVersions(const GetBucketObjectVersionsReq& req, GetBucketObjectVersionsResp* resp); /// \brief 获取Bucket所在Location /// /// \param req GetBucketLocation请求 /// \param resp GetBucketLocation返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketLocation(const GetBucketLocationReq& req, GetBucketLocationResp* resp); // TODO(sevenyou) // std::string ListMultipartUploads(); /// \brief 为源存储桶开启日志记录 /// \brief https://cloud.tencent.com/document/product/436/17054 /// \param req PutBucketLogging请求 /// \param resp PutBucketLogging返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketLogging(const PutBucketLoggingReq& req, PutBucketLoggingResp* resp); /// \brief 用于获取源存储桶的日志配置信息 /// \brief https://cloud.tencent.com/document/product/436/17053 /// \param req GetBucketLogging请求 /// \param resp GetBucketLogging返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketLogging(const GetBucketLoggingReq& req, GetBucketLoggingResp* resp); /// \brief 用于存储桶绑定自定义域名 /// \brief /// \param req PutBucketDomain请求 /// \param resp PutBucketDomain返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketDomain(const PutBucketDomainReq& req, PutBucketDomainResp* resp); /// \brief 用于获取存储桶绑定自定义域名 /// \brief /// \param req GetBucketDomain请求 /// \param resp GetBucketDomain返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketDomain(const GetBucketDomainReq& req, GetBucketDomainResp* resp); /// \brief 存储桶配置静态网站,通过传入 XML 格式的配置文件进行配置,文件大小限制为64KB /// \brief https://cloud.tencent.com/document/product/436/31930 /// \param req PutBucketWebsite请求 /// \param resp PutBucketWebsite返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketWebsite(const PutBucketWebsiteReq& req, PutBucketWebsiteResp* resp); /// \brief 获取与存储桶关联的静态网站配置信息. /// \brief https://cloud.tencent.com/document/product/436/31929 /// \param req GetBucketWebsite请求 /// \param resp GetBucketWebsite返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketWebsite(const GetBucketWebsiteReq& req, GetBucketWebsiteResp* resp); /// \brief 删除存储桶中的静态网站配置. /// \brief https://cloud.tencent.com/document/product/436/31928 /// \param req DeleteBucketWebsite请求 /// \param resp DeleteBucketWebsite返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult DeleteBucketWebsite(const DeleteBucketWebsiteReq& req, DeleteBucketWebsiteResp* resp); /// \brief 为已存在的Bucket设置标签. /// \brief https://cloud.tencent.com/document/product/436/34838 /// \param req PutBucketTagging请求 /// \param resp PutBucketTagging返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketTagging(const PutBucketTaggingReq& req, PutBucketTaggingResp* resp); /// \brief 查询指定存储桶下已有的存储桶标签. /// \brief https://cloud.tencent.com/document/product/436/34837 /// \param req GetBucketTagging请求 /// \param resp GetBucketTagging返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketTagging(const GetBucketTaggingReq& req, GetBucketTaggingResp* resp); /// \brief 删除指定存储桶下已有的存储桶标签. /// \brief https://cloud.tencent.com/document/product/436/34836 /// \param req DeleteBucketTagging请求 /// \param resp DeleteBucketTagging返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult DeleteBucketTagging(const DeleteBucketTaggingReq& req, DeleteBucketTaggingResp* resp); /// \brief 用于在存储桶中创建清单任务. /// \brief https://cloud.tencent.com/document/product/436/33707 /// \param req PutBucketinventory请求 /// \param resp PutBucketinventory返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketInventory(const PutBucketInventoryReq& req, PutBucketInventoryResp* resp); /// \brief 查询存储桶中用户的清单任务信息. /// \brief https://cloud.tencent.com/document/product/436/33705 /// \param req GetBucketinventory请求 /// \param resp GetBucketinventory返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketInventory(const GetBucketInventoryReq& req, GetBucketInventoryResp* resp); /// \brief 请求返回一个存储桶中的所有清单任务. /// \brief https://cloud.tencent.com/document/product/436/33706 /// \param req ListBucketInventoryConfigurations请求 /// \param resp ListBucketInventoryConfigurations返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult ListBucketInventoryConfigurations(const ListBucketInventoryConfigurationsReq& req, ListBucketInventoryConfigurationsResp* resp); /// \brief 用于删除存储桶中指定的清单任务. /// \brief https://cloud.tencent.com/document/product/436/33704 /// \param req DeleteBucketinventory请求 /// \param resp DeleteBucketinventory返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult DeleteBucketInventory(const DeleteBucketInventoryReq& req, DeleteBucketInventoryResp* resp); /// \brief 列举直播通道 /// \param req ListLiveChannelReq请求 /// \param resp ListLiveChannelResp返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult ListLiveChannel(const ListLiveChannelReq& req, ListLiveChannelResp* resp); /// \brief 配置存储桶智能分层 /// /// \param req PutBucketIntelligentTiering请求 /// \param resp PutBucketIntelligentTiering返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult PutBucketIntelligentTiering(const PutBucketIntelligentTieringReq& req, PutBucketIntelligentTieringResp* resp); /// \brief 获取存储桶智能分层配置 /// /// \param req GetBucketIntelligentTiering请求 /// \param resp GetBucketIntelligentTiering返回 /// /// \return 本次请求的调用情况(如状态码等) CosResult GetBucketIntelligentTiering(const GetBucketIntelligentTieringReq& req, GetBucketIntelligentTieringResp* resp); CosResult CreateDocProcessJobs(const CreateDocProcessJobsReq& req, CreateDocProcessJobsResp* resp); CosResult DescribeDocProcessJob(const DescribeDocProcessJobReq& req, DescribeDocProcessJobResp* resp); CosResult DescribeDocProcessJobs(const DescribeDocProcessJobsReq& req, DescribeDocProcessJobsResp* resp); CosResult DescribeDocProcessQueues(const DescribeDocProcessQueuesReq& req, DescribeDocProcessQueuesResp* resp); CosResult UpdateDocProcessQueue(const UpdateDocProcessQueueReq& req, UpdateDocProcessQueueResp* resp); }; } // namespace qcloud_cos #endif // BUCKETOP_H