112 lines
3.6 KiB
Markdown
112 lines
3.6 KiB
Markdown
# 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
|
|
|