Open
Description
requests 2.32.0 introduced a change #6644 that strips double /.
This has introduced an issue where generated presigned urls for s3 keys that start with a / can no longer be used. requests now strips that second / meaning that the key is modified and the signature does not match resulting in 403 errors. We can adjust to remove the leading / in our keys but this may be affecting other users or use cases
Expected Result
To be able to use presigned_urls for s3 keys with leading "/"
Actual Result
URL that was passed was modified resulting in a 403 error response from aws
Reproduction Steps
import requests
import boto3
s3 = boto3.client('s3')
bucket = "bucket"
key = "/key_with_leading_slash.txt"
presigned_url = s3.generate_presigned_url("get_object", Params={'Bucket': bucket, 'Key': key})
requests.get(presigned_url)
System Information
$ python -m requests.help
{
"chardet": {
"version": "5.1.0"
},
"charset_normalizer": {
"version": "3.1.0"
},
"cryptography": {
"version": ""
},
"idna": {
"version": "3.4"
},
"implementation": {
"name": "CPython",
"version": "3.9.6"
},
"platform": {
"release": "10",
"system": "Windows"
},
"pyOpenSSL": {
"openssl_version": "",
"version": null
},
"requests": {
"version": "2.32.1"
},
"system_ssl": {
"version": "101010bf"
},
"urllib3": {
"version": "1.26.15"
},
"using_charset_normalizer": false,
"using_pyopenssl": false
}
Metadata
Metadata
Assignees
Labels
No labels