42 HttpFile(HttpMethod method,
const std::string& url);
44 const std::string& url,
45 const std::string& upload_content_type,
46 const std::vector<std::string>& headers,
47 int32_t timeout_in_seconds);
52 static bool Delete(
const std::string& url);
54 Status CloseWithStatus();
58 bool Close()
override;
59 int64_t Read(
void* buffer, uint64_t length)
override;
60 int64_t Write(
const void* buffer, uint64_t length)
override;
61 void CloseForWriting()
override;
62 int64_t Size()
override;
63 bool Flush()
override;
64 bool Seek(uint64_t position)
override;
65 bool Tell(uint64_t* position)
override;
74 void operator()(CURL* curl);
75 void operator()(curl_slist* headers);
81 const std::string url_;
82 const std::string upload_content_type_;
83 const int32_t timeout_in_seconds_;
84 const HttpMethod method_;
88 std::unique_ptr<CURL, CurlDelete> curl_;
90 std::unique_ptr<curl_slist, CurlDelete> request_headers_;
92 std::string user_agent_;
94 std::string client_cert_file_;
95 std::string client_cert_private_key_file_;
96 std::string client_cert_private_key_password_;
99 absl::Notification task_exit_event_;