userver: /data/code/userver/libraries/s3api/src/s3api/s3api_methods.hpp Source File
Loading...
Searching...
No Matches
s3api_methods.hpp
1#pragma once
2
3#include <optional>
4#include <string>
5
6#include <userver/http/predefined_header.hpp>
7#include <userver/s3api/models/multipart_upload/requests.hpp>
8#include <userver/s3api/models/request.hpp>
9
10USERVER_NAMESPACE_BEGIN
11
12namespace s3api::api_methods {
13
14namespace headers {
15inline constexpr USERVER_NAMESPACE::http::headers::PredefinedHeader kAmzCopySource{"x-amz-copy-source"};
16}
17
18Request PutObject(
19 std::string_view bucket,
20 std::string_view path,
21 std::string data,
22 std::string_view content_type,
23 const std::optional<std::string_view>& content_disposition = std::nullopt
24);
25
26Request DeleteObject(std::string_view bucket, std::string_view path);
27
28Request GetObject(
29 std::string_view bucket,
30 std::string_view path,
31 std::optional<std::string_view> version = std::nullopt
32);
33
34Request GetObjectHead(std::string_view bucket, std::string_view path);
35
36void SetRange(Request& req, size_t begin, size_t end);
37
38void SetRange(Request& req, std::string_view range);
39
40Request GetBuckets();
41
42Request ListBucketContents(
43 std::string_view bucket,
44 std::string_view path,
45 int max_keys = 0,
46 std::string_view marker = "",
47 std::string_view delimiter = ""
48);
49
50Request CopyObject(
51 std::string_view source_bucket,
52 std::string_view source_key,
53 std::string_view dest_bucket,
54 std::string_view dest_key,
55 std::string_view content_type
56);
57
58Request CreateInternalApiRequest(
59 const std::string& bucket,
60 const multipart_upload::CreateMultipartUploadRequest& request
61);
62
63Request CreateInternalApiRequest(
64 const std::string& bucket,
65 const multipart_upload::AbortMultipartUploadRequest& request
66);
67
68Request CreateInternalApiRequest(
69 const std::string& bucket,
70 const multipart_upload::CompleteMultipartUploadRequest& request
71);
72
73Request CreateInternalApiRequest(const std::string& bucket, const multipart_upload::UploadPartRequest& request);
74
75Request CreateInternalApiRequest(const std::string& bucket, const multipart_upload::ListPartsRequest& request);
76
77Request CreateInternalApiRequest(
78 const std::string& bucket,
79 const multipart_upload::ListMultipartUploadsRequest& request
80);
81
82} // namespace s3api::api_methods
83
84USERVER_NAMESPACE_END