Releases: bidzhao/storefs
Release list
Release v0.3.8
- Provides a comprehensive monitoring and alerting system based on the Prometheus + Grafana + Alertmanager stack.
Key Features
- Metrics Collection: Each StoreFS node exposes a /metrics endpoint with system-level metrics (CPU, memory, disk, network), operation counters (object upload/download, multipart, fragment), and Go runtime metrics.
- Hot Bucket Detection: Real-time top-K hot bucket tracking using a sliding window algorithm (2-minute window), covering uploads, downloads, upload parts, and multipart completes.
- Pre-built Grafana Dashboards: Two pre-configured dashboards are included — a single-node detailed view and a cluster-wide summary view.
- **Alert Rules**: Pre-defined Prometheus alert rules for node down, disk usage, CPU/memory thresholds, and goroutine count.
- Notification Channels: Alertmanager configuration with templates for Slack, Email, and Webhook notifications (all disabled by default — easy to enable).
- Provides an MCP (Model Context Protocol) server that enables AI assistants — primarily Claude Code — to manage the cluster through natural language. Instead of remembering API endpoints and request formats, you can simply describe what you want to do.
Key Features
- Natural Language Management: Manage users, groups, buckets, policies, and objects by chatting with the AI
- 40+ Tools: Six groups of tools covering cluster management, user administration, storage policies, bucket operations, object management, and S3 data operations
- Automatic Language Detection: Responses auto-switch between English and Chinese based on your input
- Secure Authentication: Bearer token for admin operations, AWS Signature V4 for S3 data operations
- File Operations: Upload, download, and copy files directly through natural language commands
Release v0.3.6
New Features
- Server-Side Encryption (SSE) Support
- SSE-C: Supply your own AES-256 encryption key via request headers for PutObject, GetObject, HeadObject, and Multipart Upload
- SSE-S3 (bucket-Level Encryption): Enable encryption at the bucket level — data is automatically encrypted/decrypted server-side
- Encryption is transparent on read; encrypted data is decrypted before being returned
- Gzip Compression Support for PutObject and Multipart Upload
- Server now accepts gzip-compressed request bodies via Content-Encoding: gzip header for PutObject and UploadPart requests
- Supports both fixed-length and chunked transfer encoding with gzip
- Compatible with RDMA transport — gzip-compressed payloads over RDMA are decompressed automatically
- s3file CLI Improvements
- Ctrl+C cancellation: In-flight S3 API calls now abort gracefully when pressing Ctrl+C, with proper cancellation messages
- Interactive mode enhancements: Revamped navigation, UI, and object browsing experience
- S3FS mode: New interactive filesystem-like interface for browsing and manipulating objects
- Silent command mode: Optimized output for non-interactive script usage
Improvements
- S3 Signature Verification Enhanced
- region and service are now parsed from the Authorization header's Credential field, enabling cross-region request support
- Public Bucket Access Fix
- Fixed a regression where normal S3 GetObject requests to public buckets would fail due to an incorrectly set publicAccess attribute
- Multipart Upload Improvements
- CompleteMultipartUpload now returns the actual CRC-based ETag instead of the upload ID
- ETag consistency enforced across upload parts for SSE-C — the same key must be used for all parts and completion
- Input Validation
- Bucket names now strictly enforce S3 naming conventions (length 3–63, lowercase only, IP address exclusion, reserved prefix checks)
- Object keys validated for length (max 1024 bytes), UTF-8 validity, and control character rejection
- Usernames validated for length, reserved words, and allowed character patterns
- Better Error Responses
- Invalid bucket creation date now returns a proper HTTP 500 instead of a server panic
- NoSuchUpload returns proper XML-formatted error responses for ListParts
- ListObjects Pagination Fix
- Fixed nextMarker / nextContinuationToken logic for delimited listing (ListObjectsV1/V2) to correctly indicate truncation
- Potential Bug Fix
- Fixed 50+ potential issues reported by AI code review.
Web Admin Console
- Bucket management: Added encryption toggle in create/edit forms and list view
- Object list: Major UI overhaul with improved navigation and display
- User management: Enhanced password change, profile, and access key management pages
Upgrade Notes
- Schema migration required: New columns added to buckets, object_md, object_v_md, and multipart_uploads tables
- SSE-C follows the standard S3 protocol — no special SDK required on the client side
Release v0.3.5
Significantly improved metadata access performance by DB index tuning.
[Regression] Fixed normal S3 requests failure by not setting publicAccess attribute properly.
Release v0.3.4
New features:
New features:
- Group for user management. Now we have 3 roles for users: user, group_admin, super_admin.
- S3 multipart upload over RDMA.
- S3 public URL.
With minor bug fixes and GUI adjustment.
Note: There are table schema changes in this release.
Release v0.3.1
New feature: S3 Put/Get over RDMA (For Linux only).
v0.3.0
Release Notes
Major New Features
1. Object Versioning
-
S3 API Enhancements:
PUT Bucket versioning: Enable/suspend bucket versioningGET Bucket versioning: Get bucket versioning statusGET Bucket versions: List all versions of objectsDELETE Object with versionId: Delete specific object versionGET/HEAD Object with versionId: Retrieve specific object version
-
Versioning State Transitions:
Unversioned→Enabled: Enable versioningEnabled↔Suspended: Toggle between enabled and suspended states- Once enabled, cannot return to completely unversioned state
-
Delete Markers:
- When versioning is enabled, deleting an object creates a delete marker
- Delete marker becomes the latest version of the object
- Specific versions can be permanently deleted by version ID
2. Object Lock
-
Object Lock Configuration:
- Enable object lock at bucket creation
- Support
COMPLIANCEandGOVERNANCElock modes - Configurable default retention period (Retention Days)
- Object lock state cannot be disabled or turned off once created
-
S3 API Enhancements:
GET Object Lock Configuration: Get bucket's object lock configurationGET Object retention: Get object's retention configurationx-amz-object-lock-mode: Set object lock modex-amz-object-lock-retain-until-date: Set retention expirationx-amz-bypass-governance-retention: Bypass governance retention (requires permission)
-
User Permissions:
- New user field
bypassto indicate if user can bypass governance retention - Administrators can set user bypass permission
- New user field
3. Admin API Enhancements
-
Bucket Management:
- Bucket list shows versioning and object lock status
- Configure versioning and object lock when creating buckets
- Adjust versioning state when editing buckets (Enabled ↔ Suspended)
- Modify lock mode and retention period when editing buckets (only if object lock is enabled)
-
Object Management:
- Support displaying object version information
- View and manage object lock status
4. Admin Console (Web UI) Enhancements
-
Bucket Form:
- Enable versioning when creating buckets
- Enable object lock and configure lock mode/retention when creating buckets
- Enabling object lock automatically enables versioning
- Versioning state can be toggled between Enabled ↔ Suspended when editing
- Object lock status is read-only after creation
-
Object List:
- Display object version information
- Support version management operations
5. Database Schema Updates
-
buckets table:
- New
versioningfield (default: 'unversioned') - New
is_lockedfield (default: false) - New
lock_modefield (default: 'COMPLIANCE') - New
retentionfield (default: 30) - New
last_update_atfield
- New
-
object_md table:
- New
has_versionsfield - New
lock_modefield - New
expiration_timefield
- New
-
object_v_md table (new):
- Stores object version metadata
- Includes version number, delete marker, lock information, etc.
-
users table:
- New
bypassfield (default: false)
- New
-
multipart_uploads table:
- New
lock_modefield - New
expiration_timefield
- New
6. CLI Enhancements
s3filetool supports object version operations- Support listing object versions
- Support getting specific object versions
Bug Fixes
- Fixed issue deleting objects with
/character in name - Fixed race condition when uploading same object concurrently
- Fixed CRC checksum related issues
- Optimized pagination query performance
Documentation
- New S3 API documentation
- New Admin API documentation
- New FAQ documentation
- New troubleshooting guide
Upgrade Notes
Upgrading to v0.3.0 requires database migration
Note: Object lock configuration cannot be disabled after bucket creation, please configure carefully.
v0.2.1
0.2.0
Change List:
- Support S3 multipart.
- Embed web admin console into binary.
- Add 30 minute timeout to admin console.
- Support relative path as the value of node.disks.path in config file.
- Add more S3 Rest APIs:
HeadBucket
HeadObject
CopyObject
DeleteObjects
RenameObject
CreateMultipartUpload
UploadPart
CompleteMultipartUpload
AbortMultipartUpload
ListMultipartUploads
ListParts