Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## Description <!--- Describe your changes in detail --> This PR includes several fixes for request compression: - `aws_smithy_compression::body::compress::CompressedBody` will no longer incorrectly return the inner body's `SizeHint`, returning `SizeHint::default()` instead. - Fixed a bug where compressed payloads would have an incorrect content length, causing those requests to hang. - Compress in-memory request payloads instead of the previous lazy approach. ## Testing <!--- Please describe in detail how you tested your changes --> <!--- Include details of your testing environment, and the tests you ran to --> <!--- see how your change affects other areas of the code, etc. --> Tests are included. Additionally, I ran a reproducer for a user issues to ensure that their use case works: ``` #[tokio::test] async fn use_case_reproducer() { tracing_subscriber::fmt::init(); let shared_config = aws_config::from_env() .region(aws_sdk_cloudwatch::config::Region::new("us-west-2")) .load() .await; let service_config = aws_sdk_cloudwatch::config::Config::from(&shared_config) .to_builder() .request_min_compression_size_bytes(1) .build(); let client = Client::from_conf(service_config); tracing::info!("sending metrics..."); client .put_metric_data() .namespace("CloudWatchTestMetricsBrivinc") .metric_data( aws_sdk_cloudwatch::types::MetricDatum::builder() .metric_name(format!("MyMetricNameIsALittleLong")) .value(0.0) .build(), ) .send() .await .unwrap(); } ``` ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: ysaito1001 <awsaito@amazon.com>
- Loading branch information