You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Does tiny-oss natively support object storage systems compatible with the S3 protocol? #58
Yes — via the tiny-oss/aws entry. RustFS and Ceph RGW both speak the S3 API with AWS Signature Version 4, which is exactly what that entry implements. No provider-specific entry is needed: point endpoint at the store and set pathStyle: true (these stores address buckets in the URL path, like the official SDK's forcePathStyle).
import{put}from'tiny-oss/aws';awaitput({accessKeyId: '...',accessKeySecret: '...',region: 'us-east-1',// match the store's configured signing regionbucket: 'my-bucket',endpoint: 's3.example.com',// no protocol prefixsecure: true,// false for plain-HTTP local deploymentspathStyle: true,},'hello-world',blob,);
This is the documented, tested path — see README § S3-compatible stores (MinIO, Cloudflare R2, Google Cloud Storage, …). The endpoint overrides the amazonaws.com default (src/aws/host.ts) and pathStyle puts the bucket in the URL path (src/aws/request.ts), so every operation (put, multipart, list, copy, signed URLs) works unchanged.
Store notes:
RustFS — S3 API is SigV4 and supports path-style addressing.
Ceph RGW — SigV4 (AWS4-HMAC-SHA256); use the RGW endpoint with pathStyle: true to avoid DNS-style bucket subdomains.
Closing as answered. If you'd like RustFS/Ceph named explicitly in the README examples, reopen or file a small docs issue — the general mechanism already covers them.
Activity
github-actions commentedon Sep 18, 2026
Yes — via the
tiny-oss/awsentry. RustFS and Ceph RGW both speak the S3 API with AWS Signature Version 4, which is exactly what that entry implements. No provider-specific entry is needed: pointendpointat the store and setpathStyle: true(these stores address buckets in the URL path, like the official SDK'sforcePathStyle).This is the documented, tested path — see README § S3-compatible stores (MinIO, Cloudflare R2, Google Cloud Storage, …). The
endpointoverrides theamazonaws.comdefault (src/aws/host.ts) andpathStyleputs the bucket in the URL path (src/aws/request.ts), so every operation (put, multipart, list, copy, signed URLs) works unchanged.Store notes:
AWS4-HMAC-SHA256); use the RGW endpoint withpathStyle: trueto avoid DNS-style bucket subdomains.Closing as answered. If you'd like RustFS/Ceph named explicitly in the README examples, reopen or file a small docs issue — the general mechanism already covers them.