I am unable to use s3.us-west-2.amazonaws.com as the server.
The error I get is:
"Listing directory / failed.
The specified bucket is not valid. Please contact your web hosting provider for assistance.
I am able to connect fine to s3.amazonaws.com.
Looking at the tcpdump for an unencrypted session showed me that S3 endpoint is responding with the following error:
AuthorizationHeaderMalformedThe authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-west-2'us-west-20E88FE65A230B8D55O27uP0oDq/v2S0r9Wi4TwnNRbinyIQBZ1361AKHzQBaSrWnK/9//flEI+ntI0WG0grGutfH0TQ=
The "Authorization" header contains the 'us-east-1' region even when 's3.us-west-2.amazonaws.com' is used as the server.
We only have region specific connection profiles for China at https://cyberduck.io/s3/. For other regions, supplying a region specific endpoint is not supported. However you should be able to set the endpoint to a specific bucket using the old virtual host style endpoint pattern using bucketname.s3.amazonaws.com. We should derive the correct location automatically.
Thanks for the quick response! I was able to connect using the bucketname.s3.amazonaws.com server. Then I realized that even using s3.amazonaws.com as server results in connections being opened to the bucket's region (us-west-2 in my case).
I have two recommendations:
Endpoint locality behavior is worth noting on the Cyberduck/S3 page, as folks who're trying to optimize the performance of their transfers may be misled and think that their data is flowing to the endpoint specified in the server field.
The error message was very confusing when I used s3.us-west-2.amazonaws.com. Improving this error message will greatly improve customer experience in this scenario.