From 70097709b2b8ff19a8389bbc6e7165f508f2953f Mon Sep 17 00:00:00 2001 From: Ka-Hing Cheung Date: Tue, 14 Apr 2015 12:41:28 -0700 Subject: [PATCH] switch to use region specific endpoints to compute correct v4 signature fix #133 --- src/s3fs.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/s3fs.cpp b/src/s3fs.cpp index d08ada7..a67f9d2 100644 --- a/src/s3fs.cpp +++ b/src/s3fs.cpp @@ -3102,6 +3102,13 @@ static int s3fs_check_service(void) LOWSYSLOGPRINT(LOG_ERR, "Could not connect wrong region %s, so retry to connect region %s.", endpoint.c_str(), expectregion.c_str()); FPRN("Could not connect wrong region %s, so retry to connect region %s.", endpoint.c_str(), expectregion.c_str()); endpoint = expectregion; + if (S3fsCurl::IsSignatureV4()) { + if (host == "http://s3.amazonaws.com") { + host = "http://s3-" + endpoint + ".amazonaws.com"; + } else if (host == "https://s3.amazonaws.com") { + host = "https://s3-" + endpoint + ".amazonaws.com"; + } + } // retry to check s3fscurl.DestroyCurlHandle();