23 struct aws_s3_client_config;
24 struct aws_s3_meta_request;
25 struct aws_s3_meta_request_options;
26 struct aws_retry_strategy;
34 class ICredentialsProvider;
151 size_t maxRetries = 0;
153 uint32_t scaleFactorMs = 500;
155 uint32_t maxBackoffSecs = 20;
206 explicit operator bool() const noexcept {
return m_strategy !=
nullptr; }
213 aws_retry_strategy *GetUnderlyingHandle() const noexcept {
return m_strategy.get(); }
221 class S3MetaRequestOptions;
236 bool IsSuccess() const noexcept;
254 bool didValidateChecksum;
279 m_location = location;
291 m_algorithm = algorithm;
304 m_validateResponseChecksum = validate;
326 bool m_validateResponseChecksum;
366 const std::shared_ptr<Auth::ICredentialsProvider> &credentialsProvider) noexcept;
406 S3ClientConfig &SetMultipartUploadThreshold(uint64_t bytes) noexcept;
444 S3ClientConfig &SetReadBackpressure(
bool enable, uint64_t initialReadWindow) noexcept;
494 S3ClientConfig &SetTcpKeepAlive(uint16_t keepAliveIntervalSec, uint16_t keepAliveTimeoutSec) noexcept;
506 uint64_t minimumThroughputBytesPerSecond,
507 uint32_t allowableThroughputFailureIntervalSeconds) noexcept;
566 S3ClientConfig &SetClientShutdownCallback(std::function<
void()> callback) noexcept;
571 struct aws_s3_client_config *GetUnderlyingHandle()
const noexcept;
581 uint64_t GetPartSize() const noexcept;
586 uint64_t GetMultipartUploadThreshold() const noexcept;
591 double GetThroughputTargetGbps() const noexcept;
604 return m_retryStrategyOptions;
613 return m_retryStrategyFactory;
628 return m_clientShutdownCallback;
636 return m_credentialsProvider;
656 std::function<S3RetryStrategy(const S3ClientConfig &)> m_retryStrategyFactory;
658 std::function<void()> m_clientShutdownCallback;
659 std::shared_ptr<Auth::ICredentialsProvider> m_credentialsProvider;
689 using BodyCallback = std::function<bool(ByteCursor body, uint64_t rangeStart)>;
702 std::function<bool(ByteCursor body, uint64_t rangeStart, S3BufferTicket &ticket)>;
711 std::function<bool(const Vector<Http::HttpHeader> &headers,
int responseStatus)>;
718 using ProgressCallback = std::function<void(uint64_t bytesTransferred, uint64_t contentLength)>;
773 const
String &signingRegion,
774 const
String &signingName,
776 const
std::shared_ptr<Auth::ICredentialsProvider> &provider) noexcept;
899 struct aws_s3_meta_request_options *GetUnderlyingHandle() const noexcept;
902 const
BodyCallback &GetBodyCallback() const noexcept {
return m_bodyCb; }
933 const std::shared_ptr<Http::HttpRequest> &request) noexcept;
965 int m_lastError = AWS_ERROR_SUCCESS;
993 const std::shared_ptr<Http::HttpRequest> &request,
1006 const std::shared_ptr<Http::HttpRequest> &request,
1019 const std::shared_ptr<Http::HttpRequest> &request,
1050 const std::shared_ptr<Http::HttpRequest> &request) noexcept;
1062 const std::shared_ptr<Http::HttpRequest> &request,
1076 const std::shared_ptr<Http::HttpRequest> &request) noexcept;
1104 const std::shared_ptr<Http::HttpRequest> &request) noexcept;
1136 const std::shared_ptr<Http::HttpRequest> &request,
1141 const std::shared_ptr<Http::HttpRequest> &request,
1194 static bool MakeDefaultSigningConfig(
1197 const std::shared_ptr<Auth::ICredentialsProvider> &provider) noexcept;
1202 explicit operator bool() const noexcept {
return m_client !=
nullptr; }
1219 String GetRegion() const noexcept {
return m_region; }
1241 return m_credentialsProvider;
1248 uint64_t m_partSize = 0;
1249 uint64_t m_multipartUploadThreshold = 0;
1250 double m_throughputTargetGbps = 0.0;
1251 std::shared_ptr<Auth::ICredentialsProvider> m_credentialsProvider;
1275 void Cancel() noexcept;
1287 void IncrementReadWindow(uint64_t bytes) noexcept;
1301 std::future<int> Write(
ByteCursor data,
bool eof) noexcept;
1318 void SetUnderlyingHandle(
struct aws_s3_meta_request *handle) noexcept;
1321 void SetLastError(
int errorCode) noexcept { m_lastError = errorCode; }
S3ChecksumAlgorithm
Definition: S3.h:69
uint64_t GetMultipartUploadThreshold() const noexcept
Definition: S3.h:1229
String GetRegion() const noexcept
Definition: S3.h:576
S3ChecksumConfig & SetValidateResponseChecksum(bool validate) noexcept
Definition: S3.h:302
Definition: EventLoopGroup.h:97
S3TlsMode
Definition: S3.h:88
const std::function< S3RetryStrategy(const S3ClientConfig &)> & GetRetryStrategyFactory() const noexcept
Definition: S3.h:611
std::shared_ptr< Auth::ICredentialsProvider > GetCredentialsProvider() const noexcept
Definition: S3.h:1239
const S3RetryStrategyExponentialBackoffOptions & GetRetryStrategyOptions() const noexcept
Definition: S3.h:602
uint64_t GetPartSize() const noexcept
Definition: S3.h:1224
#define AWS_CRT_CPP_API
Definition: Exports.h:36
Definition: StringView.h:861
std::basic_string< char, std::char_traits< char >, StlAllocator< char >> String
Definition: Types.h:45
aws_byte_cursor ByteCursor
Definition: Types.h:31
S3ChecksumAlgorithm GetChecksumAlgorithm() const noexcept
Definition: S3.h:316
const Vector< String > & GetNetworkInterfaceNames() const noexcept
Definition: S3.h:620
Definition: HttpConnection.h:298
const std::function< void()> & GetClientShutdownCallback() const noexcept
Definition: S3.h:626
S3RetryStrategyType
Definition: S3.h:120
S3ChecksumLocation
Definition: S3.h:58
S3ChecksumConfig & SetLocation(S3ChecksumLocation location) noexcept
Definition: S3.h:277
double GetThroughputTargetGbps() const noexcept
Definition: S3.h:1234
std::shared_ptr< Auth::ICredentialsProvider > GetCredentialsProvider() const noexcept
Definition: S3.h:634
Definition: Bootstrap.h:34
AWS_CRT_CPP_API int LastError() noexcept
Definition: Api.cpp:469
aws_http_header HttpHeader
Definition: HttpConnection.h:35
std::vector< T, StlAllocator< T >> Vector
Definition: Types.h:53
Definition: Sigv4Signing.h:134
bool GetValidateResponseChecksum() const noexcept
Definition: S3.h:321
S3RecvFileMode
Definition: S3.h:100
S3ChecksumLocation GetLocation() const noexcept
Definition: S3.h:311
std::unique_ptr< T, std::function< void(T *)>> ScopedResource
Definition: Types.h:168
Definition: TlsOptions.h:317
S3ChecksumConfig & SetChecksumAlgorithm(S3ChecksumAlgorithm algorithm) noexcept
Definition: S3.h:289
S3MetaRequestType
Definition: S3.h:45
Definition: Allocator.h:10