#include #include #include #include #include #include #include #include #include #include #include #include #include class S3Client { public: S3Client(const std::string &ak, const std::string &sk, const std::string &endpoint, bool verify_ssl, bool enable_https, bool use_dual_stack, int threads_num); ~S3Client(); int get_object(const std::string &bucket, const std::string &key, int &error_type, std::string &error_message, std::string &result, std::string &range); int multipart_download_concurrency(const std::string &bucket, const std::string &key, const std::string &filename, int &error_type, std::string &error_message); int put_object(const std::string &bucket, const std::string &key, const std::string &data, int &error_type, std::string &error_message); int multipart_upload_concurrency(const std::string bucket, const std::string key, const std::string filename, int &error_type, std::string &error_message); int delete_obj(const std::string &bucket, const std::string &key, int error_type, std::string &error_message); int contains(const std::string &bucket, const std::string &key, int error_type, std::string &error_message); std::vector list(const std::string &bucket, const std::string &key, int error_type, std::string &error_message); private: std::shared_ptr client; int threads_num; }; void init_api(const std::string &level); void shutdown_api(); std::list> get_error_list();