Describe your issue in detail
When using Ceph RGW as an S3-compatible backend, all datasync services fail with SignatureDoesNotMatch errors. The root cause is that path_style (set during datasource bootstrap in discovery/install/lib/datasource.go) is never propagated to the
MinIO client configuration.
Data flow of the bug:
- During install, datasource.go correctly sets StorageConfiguration[“path_style”] = “true” for custom S3 endpoints
- FactorizeMinioServers() in common/config/datasources.go converts DataSource → MinioConfig, but only copies signatureVersion into GatewayConfiguration — path_style and force_path_style are silently dropped
- MinioConfig.ClientConfig() reads GatewayConfiguration[“path_style”] to set BucketLookupPath — since it’s missing, it defaults to virtual-host style
- Ceph RGW only supports path-style URLs (http://endpoint/bucket/key), so virtual-host requests (http://bucket.endpoint/key) produce a signature mismatch
Result: Every datasync service fails at S3 connection with SignatureDoesNotMatch, even though credentials are correct.
What version of Cells are you using?
v5-dev
What is the server OS? Database name/version?
- Server OS: Kubernetes (Linux)
- Database: MariaDB (config DB), MongoDB (document store), etcd (distributed config)
- S3 backend: Ceph RGW (S3-compatible, path-style only)
(This is a server-side issue, not browser-related)
What steps have you taken to resolve this issue already?
- Traced SignatureDoesNotMatch errors through datasync logs to the minio client initialization
- Identified that FactorizeMinioServers() drops path_style when converting StorageConfiguration → GatewayConfiguration
- Fixed common/config/datasources.go: added propagation of path_style and force_path_style to GatewayConfiguration in all three S3 datasource conversion cases
- Verified fix via etcd inspection: GatewayConfiguration.path_style: “true” now present after bootstrap
- Confirmed all datasync services connect successfully after fix
- Submitted a PR with unit tests: fix(s3): add path-style support to fix Ceph RGW S3 compatibility by SJoon99 · Pull Request #874 · pydio/cells · GitHub