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.