|
|
@@ -253,6 +253,40 @@ std::pair<std::string,bool> module::tencent_cos::exist(const std::string& appid,
|
|
|
cos_pool_destroy(p);
|
|
|
return {result,exist};
|
|
|
}
|
|
|
+std::string module::tencent_cos::deldir(const std::string& appid,const std::string& endpoint,const std::string& access_key_id,const std::string& access_key_secret,const std::string& bucket_name,const std::string& prefix)
|
|
|
+{
|
|
|
+ if (prefix.empty() || prefix.back() != '/') {
|
|
|
+ return "code:0, error_code:invalid_prefix, error_msg:prefix must end with '/'";
|
|
|
+ }
|
|
|
+
|
|
|
+ cos_pool_t* p = NULL;
|
|
|
+ cos_string_t bucket;
|
|
|
+ cos_string_t object_prefix;
|
|
|
+ cos_status_t* s = NULL;
|
|
|
+ cos_request_options_t* options = NULL;
|
|
|
+ cos_pool_create(&p, NULL);
|
|
|
+
|
|
|
+ options = cos_request_options_create(p);
|
|
|
+ options->config = cos_config_create(options->pool);
|
|
|
+ cos_str_set(&options->config->endpoint, endpoint.c_str());
|
|
|
+ cos_str_set(&options->config->access_key_id, access_key_id.c_str());
|
|
|
+ cos_str_set(&options->config->access_key_secret, access_key_secret.c_str());
|
|
|
+ cos_str_set(&options->config->appid, appid.c_str());
|
|
|
+ options->config->is_cname = COS_FALSE;
|
|
|
+ options->ctl = cos_http_controller_create(options->pool, 0);
|
|
|
+
|
|
|
+ cos_str_set(&bucket, bucket_name.c_str());
|
|
|
+ cos_str_set(&object_prefix, prefix.c_str());
|
|
|
+
|
|
|
+ s = cos_delete_objects_by_prefix(options, &bucket, &object_prefix);
|
|
|
+
|
|
|
+ std::string result = "";
|
|
|
+ if (!cos_status_is_ok(s)) {
|
|
|
+ result = "code:" + std::to_string(s->code) + ", error_code:" + s->error_code + ", error_msg:" + s->error_msg;
|
|
|
+ }
|
|
|
+ cos_pool_destroy(p);
|
|
|
+ return result;
|
|
|
+}
|
|
|
void module::tencent_cos::regist(sol::state* lua)
|
|
|
{
|
|
|
lua->new_usertype<module::tencent_cos>("fw_tencent_cos",
|
|
|
@@ -260,7 +294,8 @@ void module::tencent_cos::regist(sol::state* lua)
|
|
|
"upfile", &module::tencent_cos::upfile,
|
|
|
"updata", &module::tencent_cos::updata,
|
|
|
"del", &module::tencent_cos::del,
|
|
|
- "exist", &module::tencent_cos::exist
|
|
|
+ "exist", &module::tencent_cos::exist,
|
|
|
+ "deldir", &module::tencent_cos::deldir
|
|
|
);
|
|
|
}
|
|
|
|