Skip to content

Consider adding client-config level disable_payload_signing for S3 #1441

Open

Description

@ysaito1001

Describe the feature

When sending requests over TLS, customers may choose to disable payload signing to avoid the cost of SigV4 signing.

Background

Since this is an advanced option, it currently only applies to PutObject and UploadPart for S3, and requires per-operation customization:

client
    .put_object()
    // ... other configs
    .customize()
    .disable_payload_signing()
    .send()
    .await;

Ask
Make disable_payload_signing available on the S3 client config builder, so customers don't need to customize each operation call individually.

Notes
For PutObject and UploadPart with a streaming body, calling disable_payload_signing is unnecessary; aws-chunked encoding kicks in by default, which already disables payload signing under the hood.

Use Case

With the request implemented, no per-operation customization needed:

let config = aws_sdk_s3::Config::builder()
    .disable_payload_signing()
    // ... other configs
    .build();

let client = aws_sdk_s3::Client::from_conf(config);

client
    .put_object()
    .bucket("my-bucket")
    .key("my-key")
    .body(body)
    .send()
    .await?;

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

A note for the community

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue, please leave a comment

Activity

  1. added
    feature-requestA feature should be added or improved.
    needs-triageThis issue or PR still needs to be triaged.
    and removed
    needs-triageThis issue or PR still needs to be triaged.
    on Jun 30, 2026
  2. hiSandog commented on Jul 11, 2026

    @hiSandog

    Would a client-level setting act as a default that per-operation customization can explicitly override? That precedence matters for applications sharing one client but requiring signed payloads for selected requests. It may also be worth rejecting or ignoring the option when TLS is not in use, so moving an endpoint from HTTPS to HTTP cannot silently weaken signing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature-requestA feature should be added or improved.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions