The issue was in octopus need to enable this flag:
rgw_relaxed_s3_bucket_names = true
From: Szabo, Istvan (Agoda) <Istvan.Szabo@agoda.com>
Sent: Thursday, December 17, 2020 11:22 AM
To: ceph-users@ceph.io
Subject: [ceph-users] Bucket operations an issue with C# AWSSDK.S3 client
Email received from outside the company. If in doubt don't click links nor open attachments!
Dear Community,
We are having issues with bucket operations with ceph octopus 15.2.7.
The client library used is :
AWSSDK.S3 Version 3.5.6.6
Also used an old version of client:
AWSSDK Version 2.3.55.2
Used it in both .net core and simple .net projects but the same result
# Note : All methods mentioned below work perfectly fine with nodejs client
Node js Client:
https://www.npmjs.com/package/ceph
Nodejs client doc:
https://github.com/YounGoat/nodejs.osapi/blob/2f9d82092589bb50e452c57131499f6d673af0f4/docs/connection.md
# ALSO Note : All methods mentioned below work alright with another old version of ceph (luminous 12.2.8) with the same c# client
Here are the details:
The client object below is
new
AmazonS3Client(
"<Our_Access_Key>",
"<Our_Secret_Key>",
new
AmazonS3Config
{ServiceURL =
"<Our_Service_Url>"
}
);
Library method used : client.ListBucketsAsync();
Result: Error 405 MethodNotAllowed
(You might think it’s a permission issue but it’s not, because the same creds work in nodejs)
Library method used :
var request = new PutBucketRequest {BucketName = “seo”}; // seo is an existing bucket created by command line
client.PutBucketAsync(request);
Result error snapshot:
Result:
Error 501 Not Implemented
Library method used :
var request = new PutObjectRequest
{
BucketName = “seo”,
Key = “test2”,
ContentType = "text/plain",
ContentBody = value,
};
client.PutObjectAsync(request);
We tried adding headers for content length as well but does not work as well
Result error snapshot:
Existing bucket name: seo
Existing object name(key): test
Result:
No Such Bucket
Library code method:
var request = new GetObjectRequest {BucketName = “seo”, Key = “test”};
client.GetObjectAsync(request);
Result error snapshot:
Thank you in advance your help.