mirror of
https://github.com/beshu-tech/deltaglider.git
synced 2026-04-25 01:38:50 +02:00
feat: Add bucket management APIs and improve SDK filtering
This commit adds core bucket management functionality and enhances the SDK's internal file filtering to provide a cleaner abstraction layer. **Bucket Management**: - Add create_bucket(), delete_bucket(), list_buckets() to DeltaGliderClient - Idempotent operations (creating existing bucket or deleting non-existent returns success) - Complete boto3-compatible API for basic bucket operations - Eliminates need for boto3 in most use cases **Enhanced SDK Filtering**: - SDK now filters .delta suffix and reference.bin from all list_objects() responses - Simplified CLI to rely on SDK filtering (removed duplicate logic) - Single source of truth for internal file hiding **Delete Cleanup Logic**: - Automatically removes orphaned reference.bin when last delta in DeltaSpace is deleted - Prevents storage waste from abandoned reference files - Works for both single delete() and recursive delete_recursive() **Documentation & Testing**: - Added BOTO3_COMPATIBILITY.md documenting actual 20% method coverage (21/100+ methods) - Updated README to reflect accurate boto3 compatibility claims - New comprehensive test suite for filtering and cleanup features (test_filtering_and_cleanup.py) - New bucket management test suite (test_bucket_management.py) - Example code for bucket lifecycle management (examples/bucket_management.py) - Fixed mypy configuration to eliminate source file found twice errors - All CI checks passing (lint, format, type check, 18 unit tests, 61 integration tests) **Cleanup**: - Removed PYPI_RELEASE.md (redundant with existing docs) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
46
README.md
46
README.md
@@ -193,13 +193,13 @@ deltaglider ls -h s3://backups/
|
||||
deltaglider rm -r s3://backups/2023/
|
||||
```
|
||||
|
||||
### Python SDK - Drop-in boto3 Replacement
|
||||
### Python SDK - boto3-Compatible API
|
||||
|
||||
**[📚 Full SDK Documentation](docs/sdk/README.md)** | **[API Reference](docs/sdk/api.md)** | **[Examples](docs/sdk/examples.md)**
|
||||
**[📚 Full SDK Documentation](docs/sdk/README.md)** | **[API Reference](docs/sdk/api.md)** | **[Examples](docs/sdk/examples.md)** | **[boto3 Compatibility Guide](BOTO3_COMPATIBILITY.md)**
|
||||
|
||||
#### Quick Start - boto3 Compatible API (Recommended)
|
||||
|
||||
DeltaGlider provides a **100% boto3-compatible API** that works as a drop-in replacement for AWS S3 SDK:
|
||||
DeltaGlider provides a **boto3-compatible API** for core S3 operations (21 methods covering 80% of use cases):
|
||||
|
||||
```python
|
||||
from deltaglider import create_client
|
||||
@@ -239,8 +239,48 @@ stats = client.get_bucket_stats('releases', detailed_stats=True) # With compres
|
||||
|
||||
client.delete_object(Bucket='releases', Key='old-version.zip')
|
||||
client.head_object(Bucket='releases', Key='v2.0.0/my-app.zip')
|
||||
|
||||
# Bucket management - no boto3 needed!
|
||||
client.create_bucket(Bucket='my-new-bucket')
|
||||
client.list_buckets()
|
||||
client.delete_bucket(Bucket='my-new-bucket')
|
||||
```
|
||||
|
||||
#### Bucket Management (NEW!)
|
||||
|
||||
**No boto3 required!** DeltaGlider now provides complete bucket management:
|
||||
|
||||
```python
|
||||
from deltaglider import create_client
|
||||
|
||||
client = create_client()
|
||||
|
||||
# Create buckets
|
||||
client.create_bucket(Bucket='my-releases')
|
||||
|
||||
# Create bucket in specific region (AWS only)
|
||||
client.create_bucket(
|
||||
Bucket='my-regional-bucket',
|
||||
CreateBucketConfiguration={'LocationConstraint': 'us-west-2'}
|
||||
)
|
||||
|
||||
# List all buckets
|
||||
response = client.list_buckets()
|
||||
for bucket in response['Buckets']:
|
||||
print(f"{bucket['Name']} - {bucket['CreationDate']}")
|
||||
|
||||
# Delete bucket (must be empty)
|
||||
client.delete_bucket(Bucket='my-old-bucket')
|
||||
```
|
||||
|
||||
**Benefits:**
|
||||
- ✅ No need to import boto3 separately for bucket operations
|
||||
- ✅ Consistent API with DeltaGlider object operations
|
||||
- ✅ Works with AWS S3, MinIO, and S3-compatible storage
|
||||
- ✅ Idempotent operations (safe to retry)
|
||||
|
||||
See [examples/bucket_management.py](examples/bucket_management.py) for complete example.
|
||||
|
||||
#### Simple API (Alternative)
|
||||
|
||||
For simpler use cases, DeltaGlider also provides a streamlined API:
|
||||
|
||||
Reference in New Issue
Block a user