Skip to content

Commit 09c410b

Browse files
committed
Merge branch 'dev/demo_optimized' into 'master' (merge request !40)
dev/demo_optimized
2 parents ef18673 + 255f97f commit 09c410b

File tree

12 files changed

+166
-75
lines changed

12 files changed

+166
-75
lines changed

demo/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ project(cos-demo)
33
if (NOT ${OS_TYPE} STREQUAL "WINDOWS")
44
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function")
55
endif()
6+
file(GLOB cos_demo_src "${CMAKE_SOURCE_DIR}/demo/cos_demo.cpp")
67
file(GLOB put_object_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/put_object_demo.cpp")
78
file(GLOB get_object_url_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/get_object_url_demo.cpp")
89
file(GLOB head_object_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/head_object_demo.cpp")
@@ -14,9 +15,11 @@ file(GLOB restore_object_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/resto
1415
file(GLOB copy_move_object_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/copy_move_object_demo.cpp")
1516
file(GLOB multi_put_object_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/multi_put_object_demo.cpp")
1617
file(GLOB multi_get_object_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/multi_get_object_demo.cpp")
18+
file(GLOB select_objec_demo_src "${CMAKE_SOURCE_DIR}/demo/object_op_demo/select_objec_demo.cpp")
1719

1820
link_directories(${POCO_LINK_DIR} ${OPENSSL_LINK_DIR}) #这一行要放到add_executable前面
1921

22+
add_executable(cos_demo ${cos_demo_src})
2023
add_executable(put_object_demo ${put_object_demo_src})
2124
add_executable(get_object_url_demo ${get_object_url_demo_src})
2225
add_executable(head_object_demo ${head_object_demo_src})
@@ -28,9 +31,11 @@ add_executable(restore_object_demo ${restore_object_demo_src})
2831
add_executable(copy_move_object_demo ${copy_move_object_demo_src})
2932
add_executable(multi_put_object_demo ${multi_put_object_demo_src})
3033
add_executable(multi_get_object_demo ${multi_get_object_demo_src})
34+
add_executable(select_objec_demo ${select_objec_demo_src})
3135

3236
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
3337

38+
target_link_libraries(cos_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
3439
target_link_libraries(put_object_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
3540
target_link_libraries(get_object_url_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
3641
target_link_libraries(head_object_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
@@ -42,6 +47,7 @@ target_link_libraries(restore_object_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${
4247
target_link_libraries(copy_move_object_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
4348
target_link_libraries(multi_put_object_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
4449
target_link_libraries(multi_get_object_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
50+
target_link_libraries(select_objec_demo cossdk ${POCO_LIBS} ${OPENSSL_LIBS} ${SYSTEM_LIBS})
4551

4652
include_directories(${CMAKE_SOURCE_DIR}/include/ ${POCO_INCLUDE_DIR})
4753

demo/object_op_demo/head_object_demo.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ void HeadObjectDemo(qcloud_cos::CosAPI& cos) {
6666
qcloud_cos::CosResult result = cos.HeadObject(req, &resp);
6767

6868
std::cout << "===================HeadObjectResponse=====================" << std::endl;
69+
std::map<std::string, std::string> cos_metas = resp.GetXCosMetas(); // 获取自定义的元数据map
70+
std::string cos_meta = resp.GetXCosMeta("x-cos-meta-*"); // 获取指定自定义的元数据
71+
std::string restore = resp.GetXCosRestore(); // 获得 archive 类型对象的当前恢复状态
72+
std::string sse = resp.GetXCosServerSideEncryption(); // Server端加密使用的算法
6973
PrintResult(result, resp);
7074
std::cout << "==========================================================" << std::endl;
7175
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#include <stdlib.h>
2+
#include <sys/stat.h>
3+
#include <iostream>
4+
#include <map>
5+
#include <string>
6+
#include <thread>
7+
#include <vector>
8+
#include "cos_api.h"
9+
#include "cos_sys_config.h"
10+
#include "util/auth_tool.h"
11+
12+
/**
13+
* 本样例演示了如何使用 COS C++ SDK 进行对象检索
14+
* 包括:对象检索
15+
*/
16+
using namespace qcloud_cos;
17+
18+
uint64_t appid = 12500000000;
19+
std::string tmp_secret_id = "AKIDXXXXXXXX";
20+
std::string tmp_secret_key = "1A2Z3YYYYYYYYYY";
21+
std::string region = "ap-guangzhou";
22+
std::string bucket_name = "examplebucket-12500000000";
23+
std::string tmp_token = "token";
24+
25+
/*
26+
* 本方法包含调用是否正常的判断,和请求结果的输出
27+
* 可通过本方法判断是否请求成功,并输出结果信息
28+
*/
29+
void PrintResult(const qcloud_cos::CosResult& result, const qcloud_cos::BaseResp& resp) {
30+
if (result.IsSucc()) {
31+
std::cout << "Request Succ." << std::endl;
32+
std::cout << resp.DebugString() << std::endl;
33+
} else {
34+
std::cout << "ErrorMsg=" << result.GetErrorMsg() << std::endl;
35+
std::cout << "HttpStatus=" << result.GetHttpStatus() << std::endl;
36+
std::cout << "ErrorCode=" << result.GetErrorCode() << std::endl;
37+
std::cout << "ErrorMsg=" << result.GetErrorMsg() << std::endl;
38+
std::cout << "ResourceAddr=" << result.GetResourceAddr() << std::endl;
39+
std::cout << "XCosRequestId=" << result.GetXCosRequestId() << std::endl;
40+
std::cout << "XCosTraceId=" << result.GetXCosTraceId() << std::endl;
41+
}
42+
}
43+
44+
/*
45+
* 通过参数形式初始化 CosAPI 对象
46+
*/
47+
qcloud_cos::CosAPI InitCosAPI() {
48+
qcloud_cos::CosConfig config(appid, tmp_secret_id, tmp_secret_key, region);
49+
config.SetTmpToken(tmp_token); // 推荐使用临时密钥初始化 CosAPI 对象, 如果您使用永久密钥初始化 CosAPI 对象,请注释
50+
qcloud_cos::CosAPI cos_tmp(config);
51+
return cos_tmp;
52+
}
53+
54+
void SelectObjectContentDemo(qcloud_cos::CosAPI& cos) {
55+
std::string object_name = "test.csv.gz";
56+
int input_file_type = CSV; // 待检索对象的格式为CSV或者JSON
57+
int input_compress_type = COMPRESS_GZIP; // 压缩类型,COMPRESS_NONE, COMPRESS_GZIP, COMPRESS_BZIP2
58+
int out_file_type = CSV; // 输出格式为CSV或者JSON
59+
60+
qcloud_cos::SelectObjectContentReq req(bucket_name, object_name, input_file_type, input_compress_type, out_file_type);
61+
req.SetSqlExpression("Select * from COSObject");
62+
qcloud_cos::SelectObjectContentResp resp;
63+
qcloud_cos::CosResult result = cos.SelectObjectContent(req, &resp);
64+
65+
std::cout << "=====================IsObjectExist=======================" << std::endl;
66+
PrintResult(result, resp);
67+
// 支持打印最终结果至终端或写入本地文件
68+
// resp.WriteResultToLocalFile("file_name");
69+
resp.PrintResult();
70+
std::cout << "=========================================================" << std::endl;
71+
}
72+
73+
int main() {
74+
qcloud_cos::CosAPI cos = InitCosAPI();
75+
CosSysConfig::SetLogLevel((LOG_LEVEL)COS_LOG_ERR);
76+
SelectObjectContentDemo(cos);
77+
}

include/request/auditing_req.h

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2862,7 +2862,7 @@ class Conf {
28622862

28632863
class GetImageAuditingReq : public ObjectReq {
28642864
public:
2865-
GetImageAuditingReq(const std::string& bucket_name)
2865+
explicit GetImageAuditingReq(const std::string& bucket_name)
28662866
: ObjectReq(bucket_name, "") {
28672867
AddParam("ci-process", "sensitive-content-recognition");
28682868
SetMethod("GET");
@@ -2927,7 +2927,7 @@ class GetImageAuditingReq : public ObjectReq {
29272927

29282928
class BatchImageAuditingReq : public BucketReq {
29292929
public:
2930-
BatchImageAuditingReq(const std::string& bucket_name)
2930+
explicit BatchImageAuditingReq(const std::string& bucket_name)
29312931
: BucketReq(bucket_name) {
29322932
SetMethod("POST");
29332933
SetPath("/image/auditing");
@@ -2951,7 +2951,7 @@ class BatchImageAuditingReq : public BucketReq {
29512951

29522952
class DescribeAuditingJobReq : public BucketReq {
29532953
public:
2954-
DescribeAuditingJobReq(const std::string& bucket_name)
2954+
explicit DescribeAuditingJobReq(const std::string& bucket_name)
29552955
: BucketReq(bucket_name) {
29562956
SetMethod("GET");
29572957
SetHttps();
@@ -2963,7 +2963,7 @@ class DescribeAuditingJobReq : public BucketReq {
29632963

29642964
class DescribeImageAuditingJobReq : public DescribeAuditingJobReq {
29652965
public:
2966-
DescribeImageAuditingJobReq(const std::string& bucket_name)
2966+
explicit DescribeImageAuditingJobReq(const std::string& bucket_name)
29672967
: DescribeAuditingJobReq(bucket_name) {
29682968
SetPath("/image/auditing");
29692969
}
@@ -2972,7 +2972,7 @@ class DescribeImageAuditingJobReq : public DescribeAuditingJobReq {
29722972

29732973
class CreateAuditingJobReq : public BucketReq {
29742974
public:
2975-
CreateAuditingJobReq(const std::string& bucket_name)
2975+
explicit CreateAuditingJobReq(const std::string& bucket_name)
29762976
: BucketReq(bucket_name) {
29772977
SetMethod("POST");
29782978
SetHttps();
@@ -2991,7 +2991,7 @@ class CreateAuditingJobReq : public BucketReq {
29912991

29922992
class CreateVideoAuditingJobReq : public CreateAuditingJobReq {
29932993
public:
2994-
CreateVideoAuditingJobReq(const std::string& bucket_name)
2994+
explicit CreateVideoAuditingJobReq(const std::string& bucket_name)
29952995
: CreateAuditingJobReq(bucket_name) {
29962996
SetPath("/video/auditing");
29972997
}
@@ -3012,7 +3012,7 @@ class CreateVideoAuditingJobReq : public CreateAuditingJobReq {
30123012

30133013
class DescribeVideoAuditingJobReq : public DescribeAuditingJobReq {
30143014
public:
3015-
DescribeVideoAuditingJobReq(const std::string& bucket_name)
3015+
explicit DescribeVideoAuditingJobReq(const std::string& bucket_name)
30163016
: DescribeAuditingJobReq(bucket_name) {
30173017
SetPath("/video/auditing");
30183018
}
@@ -3021,7 +3021,7 @@ class DescribeVideoAuditingJobReq : public DescribeAuditingJobReq {
30213021

30223022
class CreateAudioAuditingJobReq : public CreateAuditingJobReq {
30233023
public:
3024-
CreateAudioAuditingJobReq(const std::string& bucket_name)
3024+
explicit CreateAudioAuditingJobReq(const std::string& bucket_name)
30253025
: CreateAuditingJobReq(bucket_name) {
30263026
SetPath("/audio/auditing");
30273027
}
@@ -3041,7 +3041,7 @@ class CreateAudioAuditingJobReq : public CreateAuditingJobReq {
30413041

30423042
class DescribeAudioAuditingJobReq : public DescribeAuditingJobReq {
30433043
public:
3044-
DescribeAudioAuditingJobReq(const std::string& bucket_name)
3044+
explicit DescribeAudioAuditingJobReq(const std::string& bucket_name)
30453045
: DescribeAuditingJobReq(bucket_name) {
30463046
SetPath("/audio/auditing");
30473047
}
@@ -3050,7 +3050,7 @@ class DescribeAudioAuditingJobReq : public DescribeAuditingJobReq {
30503050

30513051
class CreateTextAuditingJobReq : public CreateAuditingJobReq {
30523052
public:
3053-
CreateTextAuditingJobReq(const std::string& bucket_name)
3053+
explicit CreateTextAuditingJobReq(const std::string& bucket_name)
30543054
: CreateAuditingJobReq(bucket_name) {
30553055
SetPath("/text/auditing");
30563056
}
@@ -3071,7 +3071,7 @@ class CreateTextAuditingJobReq : public CreateAuditingJobReq {
30713071

30723072
class DescribeTextAuditingJobReq : public DescribeAuditingJobReq {
30733073
public:
3074-
DescribeTextAuditingJobReq(const std::string& bucket_name)
3074+
explicit DescribeTextAuditingJobReq(const std::string& bucket_name)
30753075
: DescribeAuditingJobReq(bucket_name) {
30763076
SetPath("/text/auditing");
30773077
}
@@ -3080,7 +3080,7 @@ class DescribeTextAuditingJobReq : public DescribeAuditingJobReq {
30803080

30813081
class CreateDocumentAuditingJobReq : public CreateAuditingJobReq {
30823082
public:
3083-
CreateDocumentAuditingJobReq(const std::string& bucket_name)
3083+
explicit CreateDocumentAuditingJobReq(const std::string& bucket_name)
30843084
: CreateAuditingJobReq(bucket_name) {
30853085
SetPath("/document/auditing");
30863086
}
@@ -3099,7 +3099,7 @@ class CreateDocumentAuditingJobReq : public CreateAuditingJobReq {
30993099

31003100
class DescribeDocumentAuditingJobReq : public DescribeAuditingJobReq {
31013101
public:
3102-
DescribeDocumentAuditingJobReq(const std::string& bucket_name)
3102+
explicit DescribeDocumentAuditingJobReq(const std::string& bucket_name)
31033103
: DescribeAuditingJobReq(bucket_name) {
31043104
SetPath("/document/auditing");
31053105
}
@@ -3108,7 +3108,7 @@ class DescribeDocumentAuditingJobReq : public DescribeAuditingJobReq {
31083108

31093109
class CreateWebPageAuditingJobReq : public CreateAuditingJobReq {
31103110
public:
3111-
CreateWebPageAuditingJobReq(const std::string& bucket_name)
3111+
explicit CreateWebPageAuditingJobReq(const std::string& bucket_name)
31123112
: CreateAuditingJobReq(bucket_name) {
31133113
SetPath("/webpage/auditing");
31143114
}
@@ -3129,7 +3129,7 @@ class CreateWebPageAuditingJobReq : public CreateAuditingJobReq {
31293129

31303130
class DescribeWebPageAuditingJobReq : public DescribeAuditingJobReq {
31313131
public:
3132-
DescribeWebPageAuditingJobReq(const std::string& bucket_name)
3132+
explicit DescribeWebPageAuditingJobReq(const std::string& bucket_name)
31333133
: DescribeAuditingJobReq(bucket_name) {
31343134
SetPath("/webpage/auditing");
31353135
}

0 commit comments

Comments
 (0)