35 explicit ConnectionCfg(
36 std::chrono::milliseconds s3timeout,
38 std::optional<std::string> proxy = {}
40 : timeout(s3timeout), retries(s3retries), proxy(proxy) {}
42 std::chrono::milliseconds timeout{1000};
44 std::optional<std::string> proxy{};
73 using CiUnorderedMap = USERVER_NAMESPACE::
http::
headers::HeaderMap;
74 using Meta = CiUnorderedMap;
75 using Headers = CiUnorderedMap;
78 HeaderDataRequest() {}
79 HeaderDataRequest(std::optional<std::unordered_set<std::string>> headers,
bool need_meta)
80 : headers(std::move(headers)), need_meta(need_meta) {}
81 std::optional<std::unordered_set<std::string>> headers{std::nullopt};
86 std::optional<Headers> headers;
87 std::optional<Meta> meta;
95 virtual ~Client() =
default;
99 virtual std::string PutObject(
100 std::string_view path,
102 const std::optional<Meta>& meta = std::nullopt,
103 std::string_view content_type =
"text/plain",
104 const std::optional<std::string>& content_disposition = std::nullopt,
105 const std::optional<std::vector<
Tag>>& tags = std::nullopt
108 virtual void DeleteObject(std::string_view path)
const = 0;
110 virtual std::optional<std::string> GetObject(
111 std::string_view path,
112 std::optional<std::string> version = std::nullopt,
117 virtual std::string TryGetObject(
118 std::string_view path,
119 std::optional<std::string> version = std::nullopt,
124 virtual std::optional<std::string> GetPartialObject(
125 std::string_view path,
126 std::string_view range,
127 std::optional<std::string> version = std::nullopt,
132 virtual std::string TryGetPartialObject(
133 std::string_view path,
134 std::string_view range,
135 std::optional<std::string> version = std::nullopt,
140 virtual std::string CopyObject(
141 std::string_view key_from,
142 std::string_view bucket_to,
143 std::string_view key_to,
144 const std::optional<Meta>& meta = std::nullopt
148 CopyObject(std::string_view key_from, std::string_view key_to,
const std::optional<Meta>& meta = std::nullopt) = 0;
153 virtual std::string GenerateDownloadUrl(std::string_view path, time_t expires,
bool use_ssl =
false)
const = 0;
155 virtual std::string GenerateDownloadUrlVirtualHostAddressing(
156 std::string_view path,
157 const std::chrono::system_clock::time_point& expires_at,
158 std::string_view protocol =
"https://"
161 virtual std::string GenerateUploadUrlVirtualHostAddressing(
162 std::string_view data,
163 std::string_view content_type,
164 std::string_view path,
165 const std::chrono::system_clock::time_point& expires_at,
166 std::string_view protocol =
"https://"
169 virtual std::optional<std::string> ListBucketContents(
170 std::string_view path,
172 std::string marker =
"",
173 std::string delimiter =
""
176 virtual std::vector<
ObjectMeta> ListBucketContentsParsed(std::string_view path_prefix)
const = 0;
178 virtual std::vector<std::string> ListBucketDirectories(std::string_view path_prefix)
const = 0;
221 virtual std::string_view GetBucketName()
const = 0;