Skip to content

list_objects_v2 fails with SignatureDoesNotMatch when prefix contains '~' #120

@eagletmt

Description

@eagletmt

Bug Report

Version

├── aws-sdk-s3 v0.0.8-alpha (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   ├── aws-auth v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   ├── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   │   ├── smithy-types v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   ├── aws-endpoint v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   ├── aws-types v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   └── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   ├── aws-http v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   ├── aws-types v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── smithy-types v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   ├── aws-hyper v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   ├── aws-auth v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── aws-endpoint v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── aws-http v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── aws-sig-auth v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   │   ├── aws-auth v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   │   ├── aws-types v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   │   ├── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── protocol-test-helpers v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   ├── smithy-client v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   │   ├── protocol-test-helpers v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   │   ├── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   │   ├── smithy-http-tower v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)
│   │   │   │   ├── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   │   ├── smithy-types v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── smithy-http-tower v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   │   ├── smithy-types v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   ├── aws-sig-auth v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   ├── aws-types v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   ├── smithy-http v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   ├── smithy-types v0.0.1 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939) (*)
│   └── smithy-xml v0.1.0 (https://github.com/awslabs/aws-sdk-rust?tag=v0.0.8-alpha#2d876939)

Platform

Darwin P1433-18R15U.local 20.5.0 Darwin Kernel Version 20.5.0: Sat May 8 05:10:33 PDT 2021; root:xnu-7195.121.3~9/RELEASE_X86_64 x86_64

AWS Services

S3

Description

list_objects_v2 operation fails with SignatureDoesNotMatch when prefix contains '~'.

I tried this code:

#[tokio::main]
async fn main() -> Result<(), aws_sdk_s3::Error> {
    let client = aws_sdk_s3::Client::from_env();
    client
        .list_objects_v2()
        .bucket("my-bucket")
        .prefix("~eagletmt")
        .send()
        .await?;
    Ok(())
}

I expected to see this happen: No output (if bucket is correct)

Instead, this happened: SignatureDoesNotMatch error

Error: Unhandled(Error { code: Some("SignatureDoesNotMatch"), message: Some("The request signature we calculated does not match the signature you provided. Check your key and signing method."), request_id: Some("3JJYKV5QKS3ZEPP9"), extras: {"s3_extended_request_id": "5qJzA+Ih5kIJKTXeVF3gwuNyUxB4OGsyMylBf139McPrVrm4qWv/dI6gpw4MRJbpgJXq9dgRA0I="} })

SignatureDoesNotMatch doesn't happen when the prefix parameter is "eagletmt".

Metadata

Metadata

Assignees

Labels

bugThis issue is a bug.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions