76 using CiUnorderedMap = USERVER_NAMESPACE::
http::
headers::HeaderMap;
77 using Meta = CiUnorderedMap;
78 using Headers = CiUnorderedMap;
81 HeaderDataRequest() {}
82 HeaderDataRequest(std::optional<std::unordered_set<std::string>> headers,
bool need_meta)
83 : headers(std::move(headers)),
86 std::optional<std::unordered_set<std::string>> headers{std::nullopt};
91 std::optional<Headers> headers;
92 std::optional<Meta> meta;
100 virtual ~Client() =
default;
104 virtual std::string PutObject(
105 std::string_view path,
107 const std::optional<Meta>& meta = std::nullopt,
108 std::string_view content_type =
"text/plain",
109 const std::optional<std::string>& content_disposition = std::nullopt,
110 const std::optional<std::vector<
Tag>>& tags = std::nullopt
113 virtual void DeleteObject(std::string_view path)
const = 0;
115 virtual std::optional<std::string> GetObject(
116 std::string_view path,
117 std::optional<std::string> version = std::nullopt,
122 virtual std::string TryGetObject(
123 std::string_view path,
124 std::optional<std::string> version = std::nullopt,
129 virtual std::optional<std::string> GetPartialObject(
130 std::string_view path,
131 std::string_view range,
132 std::optional<std::string> version = std::nullopt,
137 virtual std::string TryGetPartialObject(
138 std::string_view path,
139 std::string_view range,
140 std::optional<std::string> version = std::nullopt,
145 virtual std::string CopyObject(
146 std::string_view key_from,
147 std::string_view bucket_to,
148 std::string_view key_to,
149 const std::optional<Meta>& meta = std::nullopt
152 virtual std::string CopyObject(
153 std::string_view key_from,
154 std::string_view key_to,
155 const std::optional<Meta>& meta = std::nullopt
159 std::string_view path,
163 virtual std::string GenerateDownloadUrl(std::string_view path, time_t expires,
bool use_ssl =
false)
const = 0;
165 virtual std::string GenerateDownloadUrlVirtualHostAddressing(
166 std::string_view path,
167 const std::chrono::system_clock::time_point& expires_at,
168 std::string_view protocol =
"https://"
171 virtual std::string GenerateUploadUrlVirtualHostAddressing(
172 std::string_view data,
173 std::string_view content_type,
174 std::string_view path,
175 const std::chrono::system_clock::time_point& expires_at,
176 std::string_view protocol =
"https://"
179 virtual std::optional<std::string> ListBucketContents(
180 std::string_view path,
182 std::string marker =
"",
183 std::string delimiter =
""
186 virtual std::vector<
ObjectMeta> ListBucketContentsParsed(std::string_view path_prefix)
const = 0;
188 virtual std::vector<std::string> ListBucketDirectories(std::string_view path_prefix)
const = 0;
231 virtual std::string_view GetBucketName()
const = 0;