44 HttpFile(HttpMethod method,
const std::string& url);
46 const std::string& url,
47 const std::string& upload_content_type,
48 const std::vector<std::string>& headers,
49 int32_t timeout_in_seconds);
54 static bool Delete(
const std::string& url);
56 Status CloseWithStatus();
60 bool Close()
override;
61 int64_t Read(
void* buffer, uint64_t length)
override;
62 int64_t Write(
const void* buffer, uint64_t length)
override;
63 void CloseForWriting()
override;
64 int64_t Size()
override;
65 bool Flush()
override;
66 bool Seek(uint64_t position)
override;
67 bool Tell(uint64_t* position)
override;
76 void operator()(CURL* curl);
77 void operator()(curl_slist* headers);
83 const std::string url_;
84 const std::string upload_content_type_;
85 const int32_t timeout_in_seconds_;
86 const HttpMethod method_;
90 std::unique_ptr<CURL, CurlDelete> curl_;
92 std::unique_ptr<curl_slist, CurlDelete> request_headers_;
94 std::string user_agent_;
96 std::string client_cert_file_;
97 std::string client_cert_private_key_file_;
98 std::string client_cert_private_key_password_;
101 absl::Notification task_exit_event_;