diff --git a/src/curl.cpp b/src/curl.cpp index 7edcaab..f0c5cbe 100644 --- a/src/curl.cpp +++ b/src/curl.cpp @@ -121,7 +121,10 @@ static string url_to_host(const std::string &url) static string get_bucket_host() { + if(!pathrequeststyle){ return bucket + "." + url_to_host(host); + } + return url_to_host(host) + "/" + bucket; } #if 0 // noused diff --git a/src/s3fs.cpp b/src/s3fs.cpp index a67f9d2..2121355 100644 --- a/src/s3fs.cpp +++ b/src/s3fs.cpp @@ -4050,9 +4050,9 @@ int main(int argc, char* argv[]) exit(EXIT_FAILURE); } - // bucket names cannot contain upper case characters - if(lower(bucket) != bucket){ - fprintf(stderr, "%s: BUCKET %s, upper case characters are not supported\n", + // bucket names cannot contain upper case characters in virtual-hosted style + if((!pathrequeststyle) && (lower(bucket) != bucket)){ + fprintf(stderr, "%s: BUCKET %s, name not compatible with virtual-hosted style\n", program_name.c_str(), bucket.c_str()); exit(EXIT_FAILURE); }