1- //  Copyright (c) 2017, Tencent Inc.
1+ //  Copyright (c) 2017, Tencent Inc.
22//  All rights reserved.
33// 
44//  Author: sevenyou <[email protected] >@@ -41,7 +41,8 @@ class ObjectOp : public BaseOp {
4141
4242  std::string GetResumableUploadID (const  PutObjectByFileReq& originReq,
4343                                   const  std::string& bucket_name,
44-                                    const  std::string& object_name);
44+                                    const  std::string& object_name,
45+                                    bool  change_backup_domain = false );
4546
4647  bool  CheckUploadPart (const  PutObjectByFileReq& req,
4748                       const  std::string& bucket_name,
@@ -59,7 +60,7 @@ class ObjectOp : public BaseOp {
5960  // / \param response  HeadObject返回
6061  // /
6162  // / \return 返回HTTP请求的状态码及错误信息
62-   CosResult HeadObject (const  HeadObjectReq& req, HeadObjectResp* resp);
63+   CosResult HeadObject (const  HeadObjectReq& req, HeadObjectResp* resp,  bool  change_backup_domain =  false );
6364
6465  // / \brief 下载Bucket中的一个文件至流中
6566  // /
@@ -68,7 +69,7 @@ class ObjectOp : public BaseOp {
6869  // /
6970  // / \return 返回HTTP请求的状态码及错误信息
7071  CosResult GetObject (const  GetObjectByStreamReq& req,
71-                       GetObjectByStreamResp* resp);
72+                       GetObjectByStreamResp* resp,  bool  change_backup_domain =  false );
7273
7374  // / \brief 下载Bucket中的一个文件到本地
7475  // /
@@ -77,7 +78,7 @@ class ObjectOp : public BaseOp {
7778  // /
7879  // / \return 返回HTTP请求的状态码及错误信息
7980  CosResult GetObject (const  GetObjectByFileReq& req, GetObjectByFileResp* resp,
80-                       const  SharedTransferHandler& handler = nullptr );
81+                       const  SharedTransferHandler& handler = nullptr ,  bool  change_backup_domain =  false );
8182
8283  // / \brief 多线程下载Bucket中的一个文件到本地
8384  // /
@@ -95,7 +96,7 @@ class ObjectOp : public BaseOp {
9596  // /
9697  // / \return 返回HTTP请求的状态码及错误信息
9798  CosResult PutObject (const  PutObjectByFileReq& req, PutObjectByFileResp* resp,
98-                       const  SharedTransferHandler& handler = nullptr );
99+                       const  SharedTransferHandler& handler = nullptr ,  bool  change_backup_domain =  false );
99100
100101  // / \brief 将指定流上传至指定Bucket中
101102  // /
@@ -104,23 +105,23 @@ class ObjectOp : public BaseOp {
104105  // /
105106  // / \return 返回HTTP请求的状态码及错误信息
106107  CosResult PutObject (const  PutObjectByStreamReq& req,
107-                       PutObjectByStreamResp* resp, const  SharedTransferHandler& handler=nullptr );
108+                       PutObjectByStreamResp* resp, const  SharedTransferHandler& handler=nullptr ,  bool  change_backup_domain =  false );
108109
109110  // / \brief 删除Object
110111  // /
111112  // / \param req  DeleteObject请求
112113  // / \param resp DeleteObject返回
113114  // /
114115  // / \return 本次请求的调用情况(如状态码等)
115-   CosResult DeleteObject (const  DeleteObjectReq& req, DeleteObjectResp* resp);
116+   CosResult DeleteObject (const  DeleteObjectReq& req, DeleteObjectResp* resp,  bool  change_backup_domain =  false );
116117
117118  // / \brief 批量删除Object
118119  // /
119120  // / \param req  DeleteObjects请求
120121  // / \param resp DeleteObjects返回
121122  // /
122123  // / \return 本次请求的调用情况(如状态码等)
123-   CosResult DeleteObjects (const  DeleteObjectsReq& req, DeleteObjectsResp* resp);
124+   CosResult DeleteObjects (const  DeleteObjectsReq& req, DeleteObjectsResp* resp,  bool  change_backup_domain =  false );
124125
125126  // / \brief
126127  // / 请求实现初始化分片上传,成功执行此请求以后会返回UploadId用于后续的Upload
@@ -131,7 +132,8 @@ class ObjectOp : public BaseOp {
131132  // /
132133  // / \return 返回HTTP请求的状态码及错误信息
133134  CosResult InitMultiUpload (const  InitMultiUploadReq& req,
134-                             InitMultiUploadResp* resp);
135+                             InitMultiUploadResp* resp, 
136+                             bool  change_backup_domain = false );
135137
136138  // / \brief 初始化以后的分块上传,支持的块的数量为1到10000,块的大小为1MB到5GB
137139  // /
@@ -140,7 +142,8 @@ class ObjectOp : public BaseOp {
140142  // /
141143  // / \return 返回HTTP请求的状态码及错误信息
142144  CosResult UploadPartData (const  UploadPartDataReq& req,
143-                            UploadPartDataResp* resp);
145+                            UploadPartDataResp* resp, 
146+                            bool  change_backup_domain = false );
144147
145148  // / \brief
146149  // / 初始化以后的分块复制,实现将一个文件的分块内容从源路径复制到目标路径。
@@ -152,7 +155,8 @@ class ObjectOp : public BaseOp {
152155  // /
153156  // / \return 返回HTTP请求的状态码及错误信息
154157  CosResult UploadPartCopyData (const  UploadPartCopyDataReq& req,
155-                                UploadPartCopyDataResp* resp);
158+                                UploadPartCopyDataResp* resp, 
159+                                bool  change_backup_domain = false );
156160
157161  // / \brief 完成整个分块上传。当使用 Upload Parts 上传完所有块以后,
158162  // /        必须调用该 API 来完成整个文件的分块上传
@@ -162,7 +166,8 @@ class ObjectOp : public BaseOp {
162166  // /
163167  // / \return 返回HTTP请求的状态码及错误信息
164168  CosResult CompleteMultiUpload (const  CompleteMultiUploadReq& req,
165-                                 CompleteMultiUploadResp* resp);
169+                                 CompleteMultiUploadResp* resp, 
170+                                 bool  change_backup_domain = false );
166171
167172  // / \brief 异步多线程上传
168173  // / \param request   MultiUploadObject请求
@@ -172,7 +177,8 @@ class ObjectOp : public BaseOp {
172177  // / \return result
173178  CosResult MultiUploadObject (const  PutObjectByFileReq& req,
174179                              MultiPutObjectResp* resp,
175-                               const  SharedTransferHandler& handler = nullptr );
180+                               const  SharedTransferHandler& handler = nullptr ,
181+                               bool  change_backup_domain = false );
176182
177183  // / \brief 舍弃一个分块上传并删除已上传的块
178184  // /
@@ -181,23 +187,24 @@ class ObjectOp : public BaseOp {
181187  // /
182188  // / \return
183189  CosResult AbortMultiUpload (const  AbortMultiUploadReq& req,
184-                              AbortMultiUploadResp* resp);
190+                              AbortMultiUploadResp* resp, 
191+                              bool  change_backup_domain = false );
185192
186193  // / \brief 查询特定分块上传中的已上传的块
187194  // /
188195  // / \param req  ListParts请求
189196  // / \param resp ListParts返回
190197  // /
191198  // / \return result
192-   CosResult ListParts (const  ListPartsReq& req, ListPartsResp* resp);
199+   CosResult ListParts (const  ListPartsReq& req, ListPartsResp* resp,  bool  change_backup_domain =  false );
193200
194201  // / \brief 列出Object下的ACL
195202  // /
196203  // / \param req  GetObjectACL请求
197204  // / \param resp GetObjectACL返回
198205  // /
199206  // / \return 本次请求的调用情况(如状态码等)
200-   CosResult GetObjectACL (const  GetObjectACLReq& req, GetObjectACLResp* resp);
207+   CosResult GetObjectACL (const  GetObjectACLReq& req, GetObjectACLResp* resp,  bool  change_backup_domain =  false );
201208
202209  // / \brief 增加/替换Object下的ACL, 可以通过Header或者Body传入ACL信息
203210  // /        注意Header 和 Body 只能选择其中一种,否则响应返回会冲突
@@ -206,7 +213,7 @@ class ObjectOp : public BaseOp {
206213  // / \param resp PutObjectACL返回
207214  // /
208215  // / \return 本次请求的调用情况(如状态码等)
209-   CosResult PutObjectACL (const  PutObjectACLReq& req, PutObjectACLResp* resp);
216+   CosResult PutObjectACL (const  PutObjectACLReq& req, PutObjectACLResp* resp,  bool  change_backup_domain =  false );
210217
211218  // / \brief 已存在的Object设置标签.
212219  // /
@@ -241,7 +248,7 @@ class ObjectOp : public BaseOp {
241248  // / \param resp PutObjectCopy返回
242249  // /
243250  // / \return 本次请求的调用情况(如状态码等)
244-   CosResult PutObjectCopy (const  PutObjectCopyReq& req, PutObjectCopyResp* resp);
251+   CosResult PutObjectCopy (const  PutObjectCopyReq& req, PutObjectCopyResp* resp,  bool  change_backup_domain =  false );
245252
246253  // / \brief 复制文件,实现将一个文件的分块内容从源路径复制到目标路径。
247254  // /        通过指定 x-cos-copy-source 来指定源文件,x-cos-copy-source-range
@@ -251,7 +258,7 @@ class ObjectOp : public BaseOp {
251258  // / \param response  Copy返回
252259  // /
253260  // / \return 返回HTTP请求的状态码及错误信息
254-   CosResult Copy (const  CopyReq& req, CopyResp* resp);
261+   CosResult Copy (const  CopyReq& req, CopyResp* resp,  bool  change_backup_domain =  false );
255262
256263  // / \brief 对一个通过 COS 归档为 archive 类型的对象进行恢复
257264  // /
@@ -260,14 +267,16 @@ class ObjectOp : public BaseOp {
260267  // /
261268  // / \return 返回HTTP请求的状态码及错误信息
262269  CosResult PostObjectRestore (const  PostObjectRestoreReq& req,
263-                               PostObjectRestoreResp* resp);
270+                               PostObjectRestoreResp* resp, 
271+                               bool  change_backup_domain = false );
264272
265273  std::string GeneratePresignedUrl (const  GeneratePresignedUrlReq& req);
266274
267-   CosResult OptionsObject (const  OptionsObjectReq& req, OptionsObjectResp* resp);
275+   CosResult OptionsObject (const  OptionsObjectReq& req, OptionsObjectResp* resp,  bool  change_backup_domain =  false );
268276
269277  CosResult SelectObjectContent (const  SelectObjectContentReq& req,
270-                                 SelectObjectContentResp* resp);
278+                                 SelectObjectContentResp* resp,
279+                                 bool  change_backup_domain = false );
271280
272281  CosResult AppendObject (const  AppendObjectReq& req, AppendObjectResp* resp);
273282
@@ -278,7 +287,8 @@ class ObjectOp : public BaseOp {
278287  // /
279288  // / \return 返回HTTP请求的状态码及错误信息
280289  CosResult PutLiveChannel (const  PutLiveChannelReq& req,
281-                            PutLiveChannelResp* resp);
290+                            PutLiveChannelResp* resp,
291+                            bool  change_backup_domain = false );
282292
283293  // / \brief 启用或禁用通道
284294  // /
@@ -287,7 +297,8 @@ class ObjectOp : public BaseOp {
287297  // /
288298  // / \return 返回HTTP请求的状态码及错误信息
289299  CosResult PutLiveChannelSwitch (const  PutLiveChannelSwitchReq& req,
290-                                  PutLiveChannelSwitchResp* resp);
300+                                  PutLiveChannelSwitchResp* resp,
301+                                  bool  change_backup_domain = false );
291302
292303  // / \brief 获取直播通道配置
293304  // /
@@ -296,7 +307,8 @@ class ObjectOp : public BaseOp {
296307  // /
297308  // / \return 返回HTTP请求的状态码及错误信息
298309  CosResult GetLiveChannel (const  GetLiveChannelReq& req,
299-                            GetLiveChannelResp* resp);
310+                            GetLiveChannelResp* resp,
311+                            bool  change_backup_domain = false );
300312
301313  // / \brief 获取直播通道推流历史
302314  // /
@@ -305,7 +317,8 @@ class ObjectOp : public BaseOp {
305317  // /
306318  // / \return 返回HTTP请求的状态码及错误信息
307319  CosResult GetLiveChannelHistory (const  GetLiveChannelHistoryReq& req,
308-                                   GetLiveChannelHistoryResp* resp);
320+                                   GetLiveChannelHistoryResp* resp,
321+                                   bool  change_backup_domain = false );
309322
310323  // / \brief 获取直播通道推流状态
311324  // /
@@ -314,7 +327,8 @@ class ObjectOp : public BaseOp {
314327  // /
315328  // / \return 返回HTTP请求的状态码及错误信息
316329  CosResult GetLiveChannelStatus (const  GetLiveChannelStatusReq& req,
317-                                  GetLiveChannelStatusResp* resp);
330+                                  GetLiveChannelStatusResp* resp,
331+                                  bool  change_backup_domain = false );
318332
319333  // / \brief 删除直播通
320334  // /
@@ -323,7 +337,8 @@ class ObjectOp : public BaseOp {
323337  // /
324338  // / \return 返回HTTP请求的状态码及错误信息
325339  CosResult DeleteLiveChannel (const  DeleteLiveChannelReq& req,
326-                               DeleteLiveChannelResp* resp);
340+                               DeleteLiveChannelResp* resp,
341+                               bool  change_backup_domain = false );
327342
328343  // / \brief 查询指定通道在指定时间段推流生成的播放列表
329344  // /
@@ -332,7 +347,8 @@ class ObjectOp : public BaseOp {
332347  // /
333348  // / \return 返回HTTP请求的状态码及错误信息
334349  CosResult GetLiveChannelVodPlaylist (const  GetLiveChannelVodPlaylistReq& req,
335-                                       GetLiveChannelVodPlaylistResp* resp);
350+                                       GetLiveChannelVodPlaylistResp* resp,
351+                                       bool  change_backup_domain = false );
336352
337353  // / \brief 指定通道生成一个可供点播例用的播放列表
338354  // /
@@ -341,27 +357,31 @@ class ObjectOp : public BaseOp {
341357  // /
342358  // / \return 返回HTTP请求的状态码及错误信息
343359  CosResult PostLiveChannelVodPlaylist (const  PostLiveChannelVodPlaylistReq& req,
344-                                        PostLiveChannelVodPlaylistResp* resp);
360+                                        PostLiveChannelVodPlaylistResp* resp,
361+                                        bool  change_backup_domain = false );
345362
346363  // / \brief 异步多线程下载,handler处理回调
347364  CosResult MultiThreadDownload (const  GetObjectByFileReq& req,
348365                                GetObjectByFileResp* resp,
349-                                 const  SharedTransferHandler& handler = nullptr );
366+                                 const  SharedTransferHandler& handler = nullptr ,
367+                                 bool  change_backup_domain = false );
350368
351369  /*  Resumable接口 */ 
352370
353371  // / \brief 支持断点下载
354372  CosResult ResumableGetObject (const  GetObjectByFileReq& req,
355373                               GetObjectByFileResp* resp,
356-                                const  SharedTransferHandler& handler = nullptr );
374+                                const  SharedTransferHandler& handler = nullptr ,
375+                                bool  change_backup_domain = false );
357376
358377  /* 批量及目录操作接口*/ 
359378  CosResult PutObjects (const  PutObjectsByDirectoryReq& req,
360-                        PutObjectsByDirectoryResp* resp);
379+                        PutObjectsByDirectoryResp* resp,
380+                        bool  change_backup_domain = false );
361381
362-   CosResult PutDirectory (const  PutDirectoryReq& req, PutDirectoryResp* resp);
382+   CosResult PutDirectory (const  PutDirectoryReq& req, PutDirectoryResp* resp,  bool  change_backup_domain =  false );
363383
364-   CosResult MoveObject (const  MoveObjectReq& req);
384+   CosResult MoveObject (const  MoveObjectReq& req,  bool  change_backup_domain =  false );
365385
366386  /* 数据处理接口*/ 
367387
@@ -404,7 +424,8 @@ class ObjectOp : public BaseOp {
404424                    const  std::vector<std::string>& already_exist_parts,
405425                    bool  resume_flag, std::vector<std::string>* etags_ptr,
406426                    std::vector<uint64_t >* part_numbers_ptr,
407-                     const  SharedTransferHandler& handler = nullptr );
427+                     const  SharedTransferHandler& handler = nullptr ,
428+                     bool  change_backup_domain = false );
408429
409430  // / \brief 读取文件内容, 并返回读取的长度
410431  //  uint64_t GetContent(const std::string& src, std::string* file_content) const;
0 commit comments