Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crt/aws-c-s3
Submodule aws-c-s3 updated 38 files
+2 −0 .github/workflows/ci.yml
+1 −0 CMakeLists.txt
+45 −8 README.md
+13 −0 include/aws/s3/private/s3_auto_ranged_get.h
+11 −1 include/aws/s3/private/s3_client_impl.h
+70 −0 include/aws/s3/private/s3_default_buffer_pool.h
+23 −0 include/aws/s3/private/s3_meta_request_impl.h
+12 −2 include/aws/s3/private/s3_request.h
+73 −1 include/aws/s3/private/s3_util.h
+53 −0 include/aws/s3/s3_buffer_pool.h
+36 −2 include/aws/s3/s3_client.h
+131 −25 source/s3_auto_ranged_get.c
+47 −32 source/s3_auto_ranged_put.c
+27 −0 source/s3_buffer_pool.c
+154 −42 source/s3_client.c
+379 −129 source/s3_default_buffer_pool.c
+7 −0 source/s3_default_meta_request.c
+5,201 −4,040 source/s3_endpoint_resolver/aws_s3_endpoint_rule_set.c
+42 −3 source/s3_meta_request.c
+32 −0 source/s3_request.c
+287 −30 source/s3_util.c
+52 −1 tests/CMakeLists.txt
+373 −0 tests/fuzz/fuzz_buffer_pool_special_size.c
+282 −0 tests/fuzz/fuzz_buffer_pool_special_size_keep_pending.c
+70 −0 tests/fuzz/fuzz_extract_parts_from_etag.c
+129 −0 tests/fuzz/fuzz_optimal_range_size.c
+2 −1 tests/mock_s3_server/mock_s3_server.py
+533 −0 tests/s3_buffer_pool_special_size_tests.c
+46 −15 tests/s3_cancel_tests.c
+181 −0 tests/s3_client_memory_limit_env_var_test.c
+75 −0 tests/s3_client_test.c
+537 −36 tests/s3_data_plane_tests.c
+253 −0 tests/s3_max_active_connections_override_test.c
+1 −1 tests/s3_meta_request_test.c
+9 −9 tests/s3_mock_server_tests.c
+13 −7 tests/s3_tester.c
+9 −0 tests/s3_tester.h
+269 −6 tests/s3_util_tests.c
14 changes: 13 additions & 1 deletion src/main/java/software/amazon/awssdk/crt/s3/S3ClientOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ public AwsSigningConfig getSigningConfig() {
return signingConfig;
}

/**
* Sets the size, in bytes, of parts that files will be downloaded or uploaded in.
* If not set, a dynamic default part size will be used based on the throughputTargetGbps, memoryLimitInBytes and initialReadWindowSize
* to utilize the available resource and get the best performance.
*
* Notes: For PUT_OBJECT requests, the client will automatically adjust the part size to meet service limits:
* - Maximum number of parts per upload is 10,000
* - Minimum upload part size is 5 MiB
*
* @param partSize size in bytes of parts for downloads and uploads
* @return this
*/
public S3ClientOptions withPartSize(long partSize) {
this.partSize = partSize;
return this;
Expand Down Expand Up @@ -358,7 +370,7 @@ public S3ExpressCredentialsProviderFactory getS3ExpressCredentialsProviderFactor
* The amount of memory the CRT client is allowed to use.
* The client makes a best-effort attempt at memory limiting but might exceed this limit in some cases.
* If not provided, the client calculates this optimally from other settings, such as targetThroughput.
* On a 64-bit system, the default is between 2Gib-8Gib.
* On a 64-bit system, the default is between 2Gib-24Gib.
* It must be at least 1GiB and will be capped to SIZE_MAX of the system.
* @param memoryLimitBytes Memory limit in bytes.
* @return this
Expand Down
Loading