3.6 KiB
SRS-06: Object Storage
1. Overview
Object Storage module provides S3-compatible object storage service management including buckets, access policies, and user/key management.
2. Functional Requirements
2.1 Bucket Management
FR-OBJ-001: System shall allow users to create buckets
- Input: Bucket name, access policy (private/public-read)
- Output: Created bucket with ID
- Validation: Bucket name uniqueness, valid S3 naming
FR-OBJ-002: System shall allow users to list buckets
- Output: Bucket list with name, type, usage, object count
- Filtering: By name, type, access policy
FR-OBJ-003: System shall allow users to view bucket details
- Output: Bucket configuration, usage statistics, access policy
FR-OBJ-004: System shall allow users to delete buckets
- Input: Bucket ID
- Validation: Bucket must be empty or confirmation required
FR-OBJ-005: System shall display bucket usage
- Output: Storage used, object count, last modified
2.2 Access Policy Management
FR-OBJ-006: System shall allow users to configure bucket access policies
- Input: Bucket ID, access policy (private, public-read, public-read-write)
- Output: Updated access policy
FR-OBJ-007: System shall display current access policy
- Output: Policy type, policy document
2.3 User & Key Management
FR-OBJ-008: System shall allow users to create S3 users
- Input: Username, access level
- Output: Created user with access keys
FR-OBJ-009: System shall allow users to list S3 users
- Output: User list with access level, key count
FR-OBJ-010: System shall allow users to generate access keys
- Input: User ID
- Output: Access key ID and secret key
FR-OBJ-011: System shall allow users to revoke access keys
- Input: User ID, key ID
2.4 Service Management
FR-OBJ-012: System shall display service status
- Output: Service status (running/stopped), uptime
FR-OBJ-013: System shall display service statistics
- Output: Total usage, object count, endpoint URL
FR-OBJ-014: System shall display S3 endpoint URL
- Output: Endpoint URL with copy functionality
3. User Interface Requirements
3.1 Object Storage Dashboard
- Service status card
- Statistics cards (total usage, object count, uptime)
- S3 endpoint display with copy button
3.2 Bucket Management
- Bucket list with search and filter
- Bucket creation modal
- Bucket detail view with tabs (Overview, Settings, Access Policy)
- Bucket actions (delete, configure)
3.3 Tabs
- Buckets: Main bucket management
- Users & Keys: S3 user and access key management
- Monitoring: Usage statistics and monitoring
- Settings: Service configuration
4. API Endpoints
GET /api/v1/object-storage/buckets
GET /api/v1/object-storage/buckets/:id
POST /api/v1/object-storage/buckets
DELETE /api/v1/object-storage/buckets/:id
PUT /api/v1/object-storage/buckets/:id/policy
GET /api/v1/object-storage/users
POST /api/v1/object-storage/users
GET /api/v1/object-storage/users/:id/keys
POST /api/v1/object-storage/users/:id/keys
DELETE /api/v1/object-storage/users/:id/keys/:keyId
GET /api/v1/object-storage/service/status
GET /api/v1/object-storage/service/stats
GET /api/v1/object-storage/service/endpoint
5. Permissions
- object-storage:read: Required for viewing buckets, users
- object-storage:write: Required for creating, updating, deleting
6. Error Handling
- Invalid bucket name
- Bucket already exists
- Bucket not empty
- Invalid access policy
- Service not available
- Insufficient permissions