Documentation Index
Fetch the complete documentation index at: https://mintlify.com/deuxfleurs-org/garage/llms.txt
Use this file to discover all available pages before exploring further.
Compatibility DisclaimerThe compatibility information for other S3-compatible platforms (OpenStack Swift, Ceph, Riak CS, OpenIO) is provided for informational purposes only and based on available documentation. This information may be inexact or outdated. For critical decisions, conduct your own testing.Last updated: May 25, 2022
Garage S3 Compatibility Status
Garage implements a substantial subset of the Amazon S3 API. All unimplemented endpoints return 501 Not Implemented. Some x-amz- headers are not implemented.
High-Level Features
| Feature | Garage Status | Notes |
|---|
| Signature v4 | ✅ Implemented | Recommended authentication method |
| Signature v2 | ❌ Missing | Deprecated by AWS |
| URL path-style | ✅ Implemented | host.tld/bucket/key |
| URL vhost-style | ✅ Implemented | bucket.host.tld/key |
| Presigned URLs | ✅ Implemented | Temporary access links |
| SSE-C encryption | ✅ Implemented | Customer-provided keys |
| Bucket versioning | ❌ Missing | Not yet supported |
Endpoint Implementation Status
Core Bucket & Object Operations
| Endpoint | Status | Notes |
|---|
| CreateBucket | ✅ Implemented | |
| DeleteBucket | ✅ Implemented | |
| GetBucketLocation | ✅ Implemented | |
| HeadBucket | ✅ Implemented | |
| ListBuckets | ✅ Implemented | |
| HeadObject | ✅ Implemented | |
| GetObject | ✅ Implemented | |
| PutObject | ✅ Implemented | |
| CopyObject | ✅ Implemented | |
| DeleteObject | ✅ Implemented | |
| DeleteObjects | ✅ Implemented | Batch delete |
| ListObjects | ✅ Implemented | See notes below |
| ListObjectsV2 | ✅ Implemented | |
| PostObject | ✅ Implemented | Browser-based uploads |
ListObjects Implementation NoteThe encoding-type=url parameter is implemented but may have edge cases. URL-encoded fields match ListObjectsV2 behavior.
Multipart Upload
Website Hosting
| Endpoint | Status | Notes |
|---|
| PutBucketWebsite | ⚠️ Partial | See notes below |
| GetBucketWebsite | ✅ Implemented | |
| DeleteBucketWebsite | ✅ Implemented | |
PutBucketWebsite LimitationsOnly stores the index document suffix and error document path. Redirect rules are not supported.
CORS (Cross-Origin Resource Sharing)
| Endpoint | Status | Notes |
|---|
| PutBucketCors | ✅ Implemented | |
| GetBucketCors | ✅ Implemented | |
| DeleteBucketCors | ✅ Implemented | |
Lifecycle Management
PutBucketLifecycleConfiguration LimitationsSupported actions:
AbortIncompleteMultipartUpload
Expiration (without ExpiredObjectDeleteMarker)
Not supported:
- Versioning-dependent operations
- Storage class transitions
- Deprecated
Prefix in Rule (use Filter instead)
Versioning
| Endpoint | Status | Notes |
|---|
| GetBucketVersioning | ⚠️ Stub | Always returns “not enabled” |
| PutBucketVersioning | ❌ Missing | Versioning not supported |
| ListObjectVersions | ❌ Missing | Versioning not supported |
Bucket versioning is not yet supported in Garage. If you need this feature, please share your use case in Issue #166.
Access Control (ACLs & Policies)
Custom Permission SystemGarage does not implement AWS ACLs or bucket policies. Instead, it uses its own permission system based on per-access-key-per-bucket logic. Use the Garage CLI to manage permissions.
| Endpoint | Status | Notes |
|---|
| PutBucketPolicy | ❌ Missing | Use Garage CLI |
| GetBucketPolicy | ❌ Missing | Use Garage CLI |
| DeleteBucketPolicy | ❌ Missing | Use Garage CLI |
| GetBucketPolicyStatus | ❌ Missing | Use Garage CLI |
| PutBucketAcl | ❌ Missing | Use Garage CLI |
| GetBucketAcl | ❌ Missing | Use Garage CLI |
| PutObjectAcl | ❌ Missing | Use Garage CLI |
| GetObjectAcl | ❌ Missing | Use Garage CLI |
Replication
Replication is not currently supported. If you have a use case for replication, please open an issue on the Garage repository.
Object Locking
Object locking (retention and legal hold) is not currently supported.
Bucket Encryption
Encryption RecommendationGarage does not implement server-side bucket encryption configuration. Instead:
- Encrypt your server partitions at the storage level
- Use client-side encryption
- Use SSE-C (Customer-Provided Keys) for per-object encryption
If you have a specific use case for bucket-level encryption configuration, please open an issue.
Tagging
Notifications
Other Endpoints
| Endpoint | Status |
|---|
| GetObjectTorrent | ❌ Missing |
AWS-Specific Features Not Implemented
The following AWS-specific endpoints are not implemented and are unlikely to be supported:
- Bucket Analytics
- Intelligent Tiering
- Inventory Configuration
- Metrics Configuration
- Ownership Controls
- Public Access Block
- Transfer Acceleration
- Request Payment
- Logging
- Object SELECT queries
- Glacier/Archive operations
Using S3 Clients with Garage
Most S3-compatible clients work with Garage. Popular tools include:
- AWS CLI - Official command-line tool
- s3cmd - Feature-rich CLI client
- rclone - Sync and backup tool
- Minio Client (mc) - Modern CLI alternative
- Cyberduck - GUI client (macOS/Windows)
- WinSCP - GUI client (Windows)
For SDK integration, Garage works with:
- AWS SDK for JavaScript/Node.js
- AWS SDK for Python (boto3)
- AWS SDK for Go
- AWS SDK for Rust
- AWS SDK for Java
Configuration Tips
- Set the endpoint URL to your Garage instance
- Configure signature version 4
- Disable SSL verification if using self-signed certificates in development
- Use path-style URLs if virtual-host style is not configured
Compatibility Testing
Garage’s S3 compatibility is continuously tested against common S3 clients and SDKs. However, some edge cases may not be covered. If you encounter compatibility issues:
- Check this compatibility matrix
- Search existing issues on the Garage repository
- Report the issue with:
- Client/SDK name and version
- Garage version
- Request details and error messages
- Minimal reproduction steps
Contributing
If you find errors in this compatibility matrix or have tested additional endpoints, please:
- Open a pull request on the Garage repository
- Update the compatibility documentation
- Include testing methodology and results
Help us keep this information accurate and up-to-date!