23struct aws_s3_client_config;
24struct aws_s3_meta_request;
25struct aws_s3_meta_request_options;
26struct aws_retry_strategy;
193 Io::EventLoopGroup &elGroup,
206 explicit operator
bool() const noexcept {
return m_strategy !=
nullptr; }
213 aws_retry_strategy *GetUnderlyingHandle() const noexcept {
return m_strategy.get(); }
221 class S3MetaRequestOptions;
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;
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;
658 std::function<void()> m_clientShutdownCallback;
659 std::shared_ptr<Auth::ICredentialsProvider> m_credentialsProvider;
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;
933 const std::shared_ptr<Http::HttpRequest> &request)
noexcept;
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,
1195 Auth::AwsSigningConfig &config,
1197 const
std::shared_ptr<
Auth::ICredentialsProvider> &provider) noexcept;
1202 explicit operator
bool() const noexcept {
return m_client !=
nullptr; }
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;
1318 void SetUnderlyingHandle(struct aws_s3_meta_request *handle) noexcept;
1321 void SetLastError(
int errorCode) noexcept { m_lastError = errorCode; }
Definition Credentials.h:117
Definition S3BufferTicket.h:29
bool GetValidateResponseChecksum() const noexcept
Definition S3.h:321
S3ChecksumConfig() noexcept
Definition S3.cpp:31
S3ChecksumLocation GetLocation() const noexcept
Definition S3.h:311
S3ChecksumConfig & SetValidateResponseChecksum(bool validate) noexcept
Definition S3.h:302
S3ChecksumConfig & SetLocation(S3ChecksumLocation location) noexcept
Definition S3.h:277
S3ChecksumAlgorithm GetChecksumAlgorithm() const noexcept
Definition S3.h:316
S3ChecksumConfig & SetChecksumAlgorithm(S3ChecksumAlgorithm algorithm) noexcept
Definition S3.h:289
S3RetryStrategyType GetRetryStrategyType() const noexcept
Definition S3.h:596
S3ClientConfig & SetReadBackpressure(bool enable, uint64_t initialReadWindow) noexcept
Definition S3.cpp:187
~S3ClientConfig() noexcept
const S3RetryStrategyExponentialBackoffOptions & GetRetryStrategyOptions() const noexcept
Definition S3.h:602
S3ClientConfig & SetMemoryLimit(uint64_t bytes) noexcept
Definition S3.cpp:169
S3ClientConfig & SetRetryStrategy(S3RetryStrategyType type, const S3RetryStrategyExponentialBackoffOptions &options={}) noexcept
Definition S3.cpp:260
S3ClientConfig(const S3ClientConfig &)=delete
S3ClientConfig & operator=(S3ClientConfig &&)=delete
S3ClientConfig & SetTcpKeepAlive(uint16_t keepAliveIntervalSec, uint16_t keepAliveTimeoutSec) noexcept
Definition S3.cpp:230
const std::function< S3RetryStrategy(const S3ClientConfig &)> & GetRetryStrategyFactory() const noexcept
Definition S3.h:611
S3ClientConfig & SetTlsMode(S3TlsMode mode) noexcept
Definition S3.cpp:200
S3ClientConfig & SetThroughputTargetGbps(double gbps) noexcept
Definition S3.cpp:136
S3ClientConfig & SetNetworkInterfaceNames(const Vector< String > &networkInterfaceNames) noexcept
Definition S3.cpp:251
std::shared_ptr< Auth::ICredentialsProvider > GetCredentialsProvider() const noexcept
Definition S3.h:634
S3ClientConfig & SetPartSize(uint64_t bytes) noexcept
Definition S3.cpp:142
S3ClientConfig & SetTlsConnectionOptions(const Io::TlsConnectionOptions &options) noexcept
Definition S3.cpp:214
S3ClientConfig & SetClientBootstrap(Io::ClientBootstrap &bootstrap) noexcept
Definition S3.cpp:175
S3ClientConfig & SetProxyOptions(const Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept
Definition S3.cpp:221
const std::function< void()> & GetClientShutdownCallback() const noexcept
Definition S3.h:626
S3ClientConfig & SetEnableS3Express(bool enable) noexcept
Definition S3.cpp:194
S3ClientConfig & SetConnectionMonitoring(uint64_t minimumThroughputBytesPerSecond, uint32_t allowableThroughputFailureIntervalSeconds) noexcept
Definition S3.cpp:240
const Vector< String > & GetNetworkInterfaceNames() const noexcept
Definition S3.h:620
S3ClientConfig & SetConnectTimeoutMs(uint32_t timeoutMs) noexcept
Definition S3.cpp:181
S3ClientConfig & SetRegion(const Crt::String ®ion) noexcept
Definition S3.cpp:124
S3ClientConfig(S3ClientConfig &&)=delete
S3ClientConfig & SetMultipartUploadThreshold(uint64_t bytes) noexcept
Definition S3.cpp:148
String GetRegion() const noexcept
Definition S3.h:576
S3ClientConfig & operator=(const S3ClientConfig &)=delete
std::shared_ptr< S3MetaRequest > MakeMetaRequest(S3MetaRequestOptions &options) noexcept
Definition S3.cpp:1042
S3Client & operator=(S3Client &&)=delete
uint64_t GetPartSize() const noexcept
Definition S3.h:1224
uint64_t GetMultipartUploadThreshold() const noexcept
Definition S3.h:1229
String GetRegion() const noexcept
Definition S3.h:1219
~S3Client() noexcept=default
double GetThroughputTargetGbps() const noexcept
Definition S3.h:1234
std::shared_ptr< Auth::ICredentialsProvider > GetCredentialsProvider() const noexcept
Definition S3.h:1239
S3Client(S3Client &&)=delete
S3Client(const S3Client &)=delete
S3Client & operator=(const S3Client &)=delete
static bool MakeDefaultSigningConfig(Auth::AwsSigningConfig &config, const String ®ion, const std::shared_ptr< Auth::ICredentialsProvider > &provider) noexcept
Definition S3.cpp:1009
static S3RetryStrategy CreateStandard() noexcept
Definition S3.cpp:44
S3RetryStrategy(S3RetryStrategy &&other) noexcept=default
S3RetryStrategy & operator=(S3RetryStrategy &&other) noexcept=default
static S3RetryStrategy CreateExponentialBackoff(Io::EventLoopGroup &elGroup, const S3RetryStrategyExponentialBackoffOptions &options={}) noexcept
Definition S3.cpp:51
S3RetryStrategy & operator=(const S3RetryStrategy &)=delete
S3RetryStrategy(const S3RetryStrategy &)=delete
~S3RetryStrategy() noexcept=default
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition Credentials.h:33
Definition Credentials.h:28
Definition Credentials.h:23
S3TlsMode
Definition S3.h:89
@ Enabled
Definition S3.h:90
@ Disabled
Definition S3.h:91
S3MetaRequestType
Definition S3.h:46
@ PutObject
Definition S3.h:49
@ Default
Definition S3.h:47
@ GetObject
Definition S3.h:48
@ CopyObject
Definition S3.h:50
S3ChecksumAlgorithm
Definition S3.h:70
@ Sha256
Definition S3.h:75
@ Crc32
Definition S3.h:73
@ Crc64Nvme
Definition S3.h:76
@ XXHash3_64
Definition S3.h:79
@ XXHash64
Definition S3.h:78
@ Crc32c
Definition S3.h:72
@ Sha512
Definition S3.h:77
@ XXHash3_128
Definition S3.h:80
S3RetryStrategyType
Definition S3.h:121
@ ExponentialBackoff
Definition S3.h:127
@ NoRetry
Definition S3.h:129
@ Standard
Definition S3.h:125
S3ChecksumLocation
Definition S3.h:59
@ Trailer
Definition S3.h:62
@ Header
Definition S3.h:61
S3RecvFileMode
Definition S3.h:101
@ CreateNew
Definition S3.h:105
@ CreateOrReplace
Definition S3.h:103
@ WriteToPosition
Definition S3.h:112
@ CreateOrAppend
Definition S3.h:107
Definition Allocator.h:13
std::unique_ptr< T, std::function< void(T *)> > ScopedResource
Definition Types.h:168
aws_byte_cursor ByteCursor
Definition Types.h:31
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition Types.h:45
std::vector< T, StlAllocator< T > > Vector
Definition Types.h:53
AWS_CRT_CPP_API int LastError() noexcept
Definition Api.cpp:469
Definition Allocator.h:11
Definition StringView.h:862
size_t maxRetries
Definition S3.h:151
uint32_t scaleFactorMs
Definition S3.h:153
uint32_t maxBackoffSecs
Definition S3.h:155