diff --git a/example/performance/HosClientPerformance.cpp b/example/performance/HosClientPerformance.cpp index 4f7d4c4a..c9b10359 100644 --- a/example/performance/HosClientPerformance.cpp +++ b/example/performance/HosClientPerformance.cpp @@ -482,6 +482,7 @@ int main(int argc, char *argv[]) perror(log_name); return -1; } + hos_init_api(); //创建client hos_client_handle handle = hos_client_create(conf.endpoint, "default", "default", conf.pool_size); if (handle == NULL) @@ -552,6 +553,7 @@ int main(int argc, char *argv[]) //time /= test_times; //printf("hos upload finished spent %llu ns\n", time); } + hos_shutdown_api(); fclose(log); return 0; diff --git a/src/hos_client.cpp b/src/hos_client.cpp index 8879a8c6..290c4311 100644 --- a/src/hos_client.cpp +++ b/src/hos_client.cpp @@ -50,6 +50,7 @@ typedef struct hos_client_handle_s hos_info_t *hash_hos_info[MAX_HOS_CLIENT_THREAD_NUM]; size_t fd_info[MAX_HOS_CLIENT_THREAD_NUM][MAX_HOS_CLIENT_FD_NUM]; +Aws::SDKOptions options; static size_t hash_get_min_free_fd(size_t thread_id) { @@ -115,6 +116,18 @@ void set_thread_sum(hos_client_handle client, size_t thread_sum) return ; } +void hos_init_api() +{ + //options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug; + Aws::InitAPI(options); +} + +void hos_shutdown_api() +{ + //options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug; + Aws::ShutdownAPI(options); +} + hos_client_handle hos_client_create(const char *endpoint, const char *accesskeyid, const char *secretkey, size_t pool_size) { if (!endpoint || !accesskeyid || !secretkey) @@ -122,9 +135,6 @@ hos_client_handle hos_client_create(const char *endpoint, const char *accesskeyi return NULL; } - Aws::SDKOptions options; - //options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug; - Aws::InitAPI(options); hos_client_handle handle = (hos_client_handle)malloc(sizeof(hos_client_handle_t)); memset(handle, 0, sizeof(hos_client_handle_t)); @@ -547,7 +557,6 @@ int hos_client_destory(hos_client_handle handle) delete handle->S3Client; Aws::Vector().swap(handle->buckets); - Aws::ShutdownAPI((handle->options)); for (i = 0; i < handle->thread_sum; i++) { diff --git a/src/hos_client.h b/src/hos_client.h index bf3cde94..a871f1cb 100644 --- a/src/hos_client.h +++ b/src/hos_client.h @@ -75,6 +75,15 @@ enum s3errors typedef void (*put_finished_callback)(bool, const char *, void *); + +/************************************************************************************* + * 函数名: hos_init_api +*************************************************************************************/ +void hos_init_api(); +/************************************************************************************* + * 函数名: hos_shutdown_api +*************************************************************************************/ +void hos_shutdown_api(); /************************************************************************************* * 函数名: hos_client_init * 参数: const char *endpoint 目的地址,如”http://192.168.44.12:9098/hos“