Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
58bb1a6
安全问题修复
huberyxxiao May 9, 2024
bda2b42
ut
huberyxxiao May 9, 2024
6db1df9
ut
huberyxxiao May 9, 2024
a251614
ut
huberyxxiao May 9, 2024
2d7d4bb
ut
huberyxxiao May 9, 2024
2e45fc1
ut
huberyxxiao May 10, 2024
4abfc4d
add ut
huberyxxiao May 15, 2024
a5ce138
Merge branch 'dev/dev-batch-image-audit-timeout' into 'master' (merge…
May 15, 2024
9e2fe3f
ut
huberyxxiao May 15, 2024
241adae
ut
huberyxxiao May 16, 2024
7cfdb27
单测补充
May 16, 2024
f10faa6
单测补充
May 16, 2024
acdf5c3
fix demo
huberyxxiao May 17, 2024
c246051
ut
huberyxxiao May 17, 2024
9f0802a
单测补充
May 20, 2024
1797e77
ut
huberyxxiao May 20, 2024
c3e6217
ut
huberyxxiao May 20, 2024
e7cbd69
ut
huberyxxiao May 20, 2024
104517c
ut
huberyxxiao May 20, 2024
d2e6d13
ut
huberyxxiao May 20, 2024
1b54654
ut
huberyxxiao May 20, 2024
37dd168
万象单测
May 20, 2024
1ef653b
ut
huberyxxiao May 20, 2024
16eb40f
ut
huberyxxiao May 20, 2024
645cbf6
ut
huberyxxiao May 20, 2024
46e171f
参数问题
May 20, 2024
17d4ba8
ut
huberyxxiao May 20, 2024
a62a4f7
Merge branch 'dev/Safety-ut' into dev/ut-ci
May 21, 2024
43feb2e
单元测试
May 21, 2024
652bcd9
单测
May 21, 2024
11227ee
单测补充
May 21, 2024
1e3a586
单元测试
May 21, 2024
c14e098
单元测试
May 22, 2024
fc69135
单元测试
May 22, 2024
2f4db4b
单测补充
May 22, 2024
acf6214
Merge branch 'dev/ut-ci' into 'master' (merge request !36)
huberyxxiao May 23, 2024
fce627f
ut
huberyxxiao May 23, 2024
bc1db72
ut
huberyxxiao May 23, 2024
a8708f1
ut
huberyxxiao May 23, 2024
32f9933
ut
huberyxxiao May 23, 2024
f7e8c3b
Merge branch 'dev/cos_ut' into 'master' (merge request !37)
huberyxxiao May 24, 2024
acc53fa
代码规范
huberyxxiao Jun 6, 2024
95d427c
代码规范
huberyxxiao Jun 6, 2024
2b96a6d
版本发布
huberyxxiao Jun 6, 2024
655e562
Merge branch 'dev/cos_ut' into 'master' (merge request !38)
huberyxxiao Jun 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .code.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2022050909

source:

test_source:
filepath_regex: ["unittest/.*", "unittest/src/.*"]

third_party_source:
# 填写相对路径的正则表达式(相对于代码库根目录),要求匹配到文件层级。
filepath_regex: ["include/rapidxml/1.13/.*"]
708 changes: 288 additions & 420 deletions demo/cos_demo.cpp

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions demo/test_file/test.srt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
1
00:00:04,160 --> 00:00:08,640
srt字幕啊,我一杯品尝你的啡,留下唇印的嘴。蝴蝶玫瑰名字写错谁告白节说风吹的对街微笑在脸上飞。哼,和你说你有点难追,想让我知难而退。礼物不屑掉,最贵只要乡榭的落叶营造浪漫的约回,不害怕留在一切拥有。

2
00:00:08,640 --> 00:00:12,680
你就拥有全世界。亲爱的,爱上你从那天起甜蜜的痕迹,亲爱的,别人性你的眼睛在说,我愿意咖啡,我说一杯品尝你的啡,留下唇印的嘴,蝴蝶,玫瑰。
Binary file added demo/test_file/test.zip
Binary file not shown.
4 changes: 4 additions & 0 deletions gen_lcov.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ lcov -d build -b . --no-external -c -o sevenyou.info
lcov --extract sevenyou_init.info ${EXTRACT} -o sevenyou_init_filted.info
lcov --extract sevenyou.info ${EXTRACT} -o sevenyou_filted.info

lcov --remove sevenyou.info "${workspace}/third_party/*" -o sevenyou_rm_third_party.info
rm sevenyou.info
mv sevenyou_rm_third_party.info sevenyou.info

# genhtml and zip
genhtml -o UTReport --prefix=`pwd` sevenyou_init_filted.info sevenyou_filted.info
tar -cvf UTReport.tar UTReport
Expand Down
12 changes: 12 additions & 0 deletions include/cos_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -924,6 +924,18 @@ class CosAPI {
CosResult UpdateMediaQueue(const UpdateMediaQueueReq& req,
UpdateQueueResp* resp);

/** 文档处理接口 **/

/*** 查询已经开通文档处理功能的存储桶 ***/
// https://cloud.tencent.com/document/product/460/95747
CosResult DescribeFileBuckets(const DescribeFileBucketsReq& req,
DescribeFileBucketsResp* resp);

/*** 存储桶绑定文档处理 ***/
// https://cloud.tencent.com/document/product/460/86377
CosResult CreateFileBucket(const CreateFileBucketReq& req,
CreateFileBucketResp* resp);

/* 异步任务接口 */
/** 创建异步任务 **/
CosResult CreateDataProcessJobs(const CreateDataProcessJobsReq& req,
Expand Down
4 changes: 2 additions & 2 deletions include/cos_defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@

namespace qcloud_cos {

#define COS_CPP_SDK_VERSON "v5.5.11"
#define COS_CPP_SDK_VERSON "v5.5.12"

/// 路径分隔符
const std::string kPathDelimiter = "/";
const char kPathDelimiter[] = "/";
/// 路径分隔符
const unsigned char kPathDelimiterChar = '/';

Expand Down
258 changes: 129 additions & 129 deletions include/cos_params.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,31 @@
namespace qcloud_cos{

/// http header中的Authorization字段
const std::string kHttpHeaderAuthorization = "Authorization";
const char kHttpHeaderAuthorizatio[] = "Authorization";
//const std::string kParaCustomHeaders = "custom_headers";
const std::string kHttpHeaderCacheControl = "Cache-Control";
const std::string kHttpHeaderContentType = "Content-Type";
const std::string kHttpHeaderContentLength = "Content-Length";
const std::string kHttpHeaderContentDisposition = "Content-Disposition";
const std::string kHttpHeaderContentLanguage = "Content-Language";
const std::string kHttpHeaderContentEncoding = "Content-Encoding";
const std::string kHttpHeaderContentRange = "Content-Range";
const std::string kHttpHeaderExpires = "Expires";
const std::string kHttpHeaderLastModified = "Last-Modified";
const std::string kHttpHeaderConnection = "Connection";
const std::string kHttpHeaderDate = "Date";
const std::string kHttpHeaderServer = "Server";
const std::string kHttpHeaderEtag = "ETag";
const std::string kHttpHeaderLowerCaseEtag = "Etag";

const std::string kParaXCosMetaPrefix = "x-cos-meta-";

const std::string kParaMoveDstFileid = "dest_fileid";
const std::string kParaMoveOverWrite = "to_over_write";

const std::string kParaListNum = "num";
const std::string kParaListFlag = "list_flag";
const std::string kParaListContext = "context";
const char kHttpHeaderCacheControl[] = "Cache-Control";
const char kHttpHeaderContentType[] = "Content-Type";
const char kHttpHeaderContentLength[] = "Content-Length";
const char kHttpHeaderContentDisposition[] = "Content-Disposition";
const char kHttpHeaderContentLanguage[] = "Content-Language";
const char kHttpHeaderContentEncoding[] = "Content-Encoding";
const char kHttpHeaderContentRange[] = "Content-Range";
const char kHttpHeaderExpires[] = "Expires";
const char kHttpHeaderLastModified[] = "Last-Modified";
const char kHttpHeaderConnection[] = "Connection";
const char kHttpHeaderDate[] = "Date";
const char kHttpHeaderServer[] = "Server";
const char kHttpHeaderEtag[] = "ETag";
const char kHttpHeaderLowerCaseEtag[] = "Etag";

const char kParaXCosMetaPrefix[] = "x-cos-meta-";

const char kParaMoveDstFileid[] = "dest_fileid";
const char kParaMoveOverWrite[] = "to_over_write";

const char kParaListNum[] = "num";
const char kParaListFlag[] = "list_flag";
const char kParaListContext[] = "context";

// const std::string kParaErrorDesc = "parameter error";
// const std::string kNetworkErrorDesc = "network error";
Expand All @@ -39,137 +39,137 @@ const std::string kParaListContext = "context";
// const std::string kCanNotOpRootPath = "can not operator root folder";

// x-cos-meta-前缀
const std::string kXCosMetaPrefix = "x-cos-meta-";
const char kXCosMetaPrefix[] = "x-cos-meta-";

// Request Header
const std::string kReqHeaderEtag = "ETag";
const std::string kReqHeaderLowerCaseEtag = "Etag";
const std::string kReqHeaderContentLen = "Content-Length";
const std::string kReqHeaderContentType = "Content-Type";
const std::string kReqHeaderConnection = "Connection";
const std::string kReqHeaderDate = "Date";
const std::string kReqHeaderServer = "Server";
const std::string kReqHeaderXCosReqId = "x-cos-request-id";
const std::string kReqHeaderXCosTraceId = "x-cos-trace-id";
const char kReqHeaderEtag[] = "ETag";
const char kReqHeaderLowerCaseEtag[] = "Etag";
const char kReqHeaderContentLen[] = "Content-Length";
const char kReqHeaderContentType[] = "Content-Type";
const char kReqHeaderConnection[] = "Connection";
const char kReqHeaderDate[] = "Date";
const char kReqHeaderServer[] = "Server";
const char kReqHeaderXCosReqId[] = "x-cos-request-id";
const char kReqHeaderXCosTraceId[] = "x-cos-trace-id";

// Response Header
const std::string kRespHeaderLastModified = "Last-Modified";
const std::string kRespHeaderXCosObjectType = "x-cos-object-type";
const std::string kRespHeaderXCosStorageClass = "x-cos-storage-class";
const std::string kRespHeaderXCosHashCrc64Ecma = "x-cos-hash-crc64ecma";
const std::string kRespHeaderXCosStorageTier = "x-cos-storage-tier";
const std::string kRespHeaderXCosReqId = "x-cos-request-id";
const std::string kRespHeaderXCosTraceId = "x-cos-trace-id";
const std::string kRespHeaderXCosNextAppendPosition = "x-cos-next-append-position";
const std::string kRespHeaderXCosContentSha1 = "x-cos-content-sha1";
const std::string kRespHeaderXCosTaggingCount = "x-cos-tagging-count";
const char kRespHeaderLastModified[] = "Last-Modified";
const char kRespHeaderXCosObjectType[] = "x-cos-object-type";
const char kRespHeaderXCosStorageClass[] = "x-cos-storage-class";
const char kRespHeaderXCosHashCrc64Ecma[] = "x-cos-hash-crc64ecma";
const char kRespHeaderXCosStorageTier[] = "x-cos-storage-tier";
const char kRespHeaderXCosReqId[] = "x-cos-request-id";
const char kRespHeaderXCosTraceId[] = "x-cos-trace-id";
const char kRespHeaderXCosNextAppendPosition[] = "x-cos-next-append-position";
const char kRespHeaderXCosContentSha1[] = "x-cos-content-sha1";
const char kRespHeaderXCosTaggingCount[] = "x-cos-tagging-count";

// doc preview response header
const std::string kRespHeaderXTotalPage = "X-Total-Page";
const std::string kRespHeaderXErrNo = "X-ErrNo";
const std::string kRespHeaderXTotalSheet = "X-Total-Sheet";
const std::string kRespHeaderXSheetName = "X-Sheet-Name";
const char kRespHeaderXTotalPage[] = "X-Total-Page";
const char kRespHeaderXErrNo[] = "X-ErrNo";
const char kRespHeaderXTotalSheet[] = "X-Total-Sheet";
const char kRespHeaderXSheetName[] = "X-Sheet-Name";


// V5 返回错误信息的xml node名
const std::string kErrorRoot = "Error";
const std::string kErrorCode = "Code";
const std::string kErrorMessage = "Message";
const std::string kErrorResource = "Resource";
const std::string kErrorTraceId = "TraceId";
const std::string kErrorRequestId = "RequestId";
const std::string kErrorServerTime = "ServerTime";
const char kErrorRoot[] = "Error";
const char kErrorCode[] = "Code";
const char kErrorMessage[] = "Message";
const char kErrorResource[] = "Resource";
const char kErrorTraceId[] = "TraceId";
const char kErrorRequestId[] = "RequestId";
const char kErrorServerTime[] = "ServerTime";

// GetBucketResponse XML node
const std::string kGetBucketRoot = "ListBucketResult";
const std::string kGetBucketName = "Name";
const std::string kGetBucketDelimiter = "Delimiter";
const std::string kGetBucketEncodingType = "EncodingType";
const std::string kGetBucketNextMarker = "NextMarker";
const std::string kGetBucketPrefix = "Prefix";
const std::string kGetBucketMarker = "Marker";
const std::string kGetBucketMaxKeys = "MaxKeys";
const std::string kGetBucketIsTruncated = "IsTruncated";
const std::string kGetBucketCommonPrefixes = "CommonPrefixes";
const std::string kGetBucketContents = "Contents";
const std::string kGetBucketContentsKey = "Key";
const std::string kGetBucketContentsLastModified = "LastModified";
const std::string kGetBucketContentsETag = "ETag";
const std::string kGetBucketContentsSize = "Size";
const std::string kGetBucketContentsStorageClass = "StorageClass";
const std::string kGetBucketContentsOwner = "Owner";
const std::string kGetBucketContentsOwnerID = "ID";
const char kGetBucketRoot[] = "ListBucketResult";
const char kGetBucketName[] = "Name";
const char kGetBucketDelimiter[] = "Delimiter";
const char kGetBucketEncodingType[] = "EncodingType";
const char kGetBucketNextMarker[] = "NextMarker";
const char kGetBucketPrefix[] = "Prefix";
const char kGetBucketMarker[] = "Marker";
const char kGetBucketMaxKeys[] = "MaxKeys";
const char kGetBucketIsTruncated[] = "IsTruncated";
const char kGetBucketCommonPrefixes[] = "CommonPrefixes";
const char kGetBucketContents[] = "Contents";
const char kGetBucketContentsKey[] = "Key";
const char kGetBucketContentsLastModified[] = "LastModified";
const char kGetBucketContentsETag[] = "ETag";
const char kGetBucketContentsSize[] = "Size";
const char kGetBucketContentsStorageClass[] = "StorageClass";
const char kGetBucketContentsOwner[] = "Owner";
const char kGetBucketContentsOwnerID[] = "ID";

// ListMultipartUpload XML node
const std::string kListMultipartUploadRoot = "ListMultipartUploadsResult";
const std::string kListMultipartUploadBucket = "Bucket";
const std::string kListMultipartUploadMarker = "KeyMarker";
const std::string kListMultipartUploadIdMarker = "UploadIdMarker";
const std::string kListMultipartUploadNextKeyMarker = "NextKeyMarker";
const std::string kListMultipartUploadNextUploadIdMarker = "NextUploadIdMarker";
const std::string kListMultipartUploadMaxUploads = "MaxUploads";
const std::string kListMultipartUploadUpload = "Upload";
const std::string kListMultipartUploadKey = "Key";
const std::string kListMultipartUploadId = "UploadId";
const std::string kListMultipartUploadStorageClass = "StorageClass";
const std::string kListMultipartUploadInitiator = "Initiator";
const std::string kListMultipartUploadOwner = "Owner";
const std::string kListMultipartUploadInitiated = "Initiated";
const std::string kListMultipartUploadID = "ID";
const std::string kListMultipartUploadDisplayName = "DisplayName";
const char kListMultipartUploadRoot[] = "ListMultipartUploadsResult";
const char kListMultipartUploadBucket[] = "Bucket";
const char kListMultipartUploadMarker[] = "KeyMarker";
const char kListMultipartUploadIdMarker[] = "UploadIdMarker";
const char kListMultipartUploadNextKeyMarker[] = "NextKeyMarker";
const char kListMultipartUploadNextUploadIdMarker[] = "NextUploadIdMarker";
const char kListMultipartUploadMaxUploads[] = "MaxUploads";
const char kListMultipartUploadUpload[] = "Upload";
const char kListMultipartUploadKey[] = "Key";
const char kListMultipartUploadId[] = "UploadId";
const char kListMultipartUploadStorageClass[] = "StorageClass";
const char kListMultipartUploadInitiator[] = "Initiator";
const char kListMultipartUploadOwner[] = "Owner";
const char kListMultipartUploadInitiated[] = "Initiated";
const char kListMultipartUploadID[] = "ID";
const char kListMultipartUploadDisplayName[] = "DisplayName";

// BucketReplicationResponse XML node
const std::string kBucketReplicationRoot = "ReplicationConfiguration";
const std::string kBucketReplicationRule = "Rule";
const std::string kBucketReplicationID = "ID";
const std::string kBucketReplicationRole = "Role";
const std::string kBucketReplicationPrefix = "Prefix";
const std::string kBucketReplicationStatus = "Status";
const std::string kBucketReplicationDestination = "Destination";
const std::string kBucketReplicationBucket = "Bucket";
const std::string kBucketReplicationStorageClass = "StorageClass";
const char kBucketReplicationRoot[] = "ReplicationConfiguration";
const char kBucketReplicationRule[] = "Rule";
const char kBucketReplicationID[] = "ID";
const char kBucketReplicationRole[] = "Role";
const char kBucketReplicationPrefix[] = "Prefix";
const char kBucketReplicationStatus[] = "Status";
const char kBucketReplicationDestination[] = "Destination";
const char kBucketReplicationBucket[] = "Bucket";
const char kBucketReplicationStorageClass[] = "StorageClass";

// InitMultiUploadResp XML node
const std::string kInitiateMultipartUploadRoot = "InitiateMultipartUploadResult";
const std::string kInitiateMultipartUploadBucket = "Bucket";
const std::string kInitiateMultipartUploadKey = "Key";
const std::string kInitiateMultipartUploadId = "UploadId";
const char kInitiateMultipartUploadRoot[] = "InitiateMultipartUploadResult";
const char kInitiateMultipartUploadBucket[] = "Bucket";
const char kInitiateMultipartUploadKey[] = "Key";
const char kInitiateMultipartUploadId[] = "UploadId";

// CompleteMultiUploadResp XML node
const std::string kCompleteMultiUploadRoot = "CompleteMultipartUploadResult";
const std::string kCompleteMultiUploadLocation = "Location";
const std::string kCompleteMultiUploadBucket = "Bucket";
const std::string kCompleteMultiUploadKey = "Key";
const std::string kCompleteMultiUploadETag = "ETag";
const char kCompleteMultiUploadRoot[] = "CompleteMultipartUploadResult";
const char kCompleteMultiUploadLocation[] = "Location";
const char kCompleteMultiUploadBucket[] = "Bucket";
const char kCompleteMultiUploadKey[] = "Key";
const char kCompleteMultiUploadETag[] = "ETag";

// StorageClass
const std::string kStorageClassStandard = "STANDARD";
const std::string kStorageClassStandardIA = "STANDARD_IA";
const std::string kStorageClassMAZStandard = "MAZ_STANDARD";
const std::string kStorageClassMAZStandardIA = "MAZ_STANDARD_IA";
const std::string kStorageClassIntelligentTiering = "INTELLIGENT_TIERING";
const std::string kStorageClassArchive = "ARCHIVE";
const std::string kStorageClassDeepArchive = "DEEP_ARCHIVE";
const char kStorageClassStandard[] = "STANDARD";
const char kStorageClassStandardIA[] = "STANDARD_IA";
const char kStorageClassMAZStandard[] = "MAZ_STANDARD";
const char kStorageClassMAZStandardIA[] = "MAZ_STANDARD_IA";
const char kStorageClassIntelligentTiering[] = "INTELLIGENT_TIERING";
const char kStorageClassArchive[] = "ARCHIVE";
const char kStorageClassDeepArchive[] = "DEEP_ARCHIVE";

// Resumable download
const std::string kResumableDownloadTaskFileSuffix = ".cosresumabletask";
const std::string kResumableDownloadFileName = "fileName";
const std::string kResumableDownloadTaskLastModified = "lastModified";
const std::string kResumableDownloadTaskContentLength = "contentLength";
const std::string kResumableDownloadTaskEtag = "eTag";
const std::string kResumableDownloadTaskCrc64ecma = "crc64ecma";
const std::string kResumableDownloadResumeOffset = "resumeOffset";
const char kResumableDownloadTaskFileSuffix[] = ".cosresumabletask";
const char kResumableDownloadFileName[] = "fileName";
const char kResumableDownloadTaskLastModified[] = "lastModified";
const char kResumableDownloadTaskContentLength[] = "contentLength";
const char kResumableDownloadTaskEtag[] = "eTag";
const char kResumableDownloadTaskCrc64ecma[] = "crc64ecma";
const char kResumableDownloadResumeOffset[] = "resumeOffset";

// 预设ACL
const std::string kAclDefault = "default";
const std::string kAclPrivate = "private";
const std::string kAclPublicRead = "public-read";
const std::string kAclPublicReadWrite = "public-read-write";
const std::string kAclAuthenticatedRead = "authenticated-read";
const std::string kAclBucketOwnerRead = "bucket-owner-read";
const char kAclDefault[] = "default";
const char kAclPrivate[] = "private";
const char kAclPublicRead[] = "public-read";
const char kAclPublicReadWrite[] = "public-read-write";
const char kAclAuthenticatedRead[] = "authenticated-read";
const char kAclBucketOwnerRead[] = "bucket-owner-read";

// object type
const std::string kObjectTypeAppendable = "appendable";
const std::string kObjectTypeNormal = "normal";
const char kObjectTypeAppendable[] = "appendable";
const char kObjectTypeNormal[] = "normal";
} // namespace qcloud_cos
#endif
8 changes: 7 additions & 1 deletion include/cos_sys_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,11 @@ class CosSysConfig {

static bool GetRetryChangeDomain();

private:
static void SetObjectKeySimplifyCheck(bool object_key_simplify_check);

static bool GetObjectKeySimplifyCheck();

private:
// 打印日志:0,不打印,1:打印到屏幕,2:打印到syslog
static LOG_OUT_TYPE m_log_outtype;
// 日志级别:1: ERR, 2: WARN, 3:INFO, 4:DBG
Expand Down Expand Up @@ -215,6 +219,8 @@ class CosSysConfig {
static unsigned m_dns_cache_size;

static bool m_retry_change_domain;

static bool m_object_key_simplify_check;
};

} // namespace qcloud_cos
Expand Down
Loading