Files
disknext/service/storage/__init__.py
于小丘 3639a31163
Some checks failed
Test / test (push) Failing after 2m21s
feat: add S3 storage support, policy migration, and quota enforcement
- Add S3StorageService with AWS Signature V4 signing (URI-encoded for non-ASCII keys)
- Add PATCH /object/{id}/policy endpoint for switching storage policies with background migration
- Implement cross-storage file migration service (local <-> S3)
- Replace deprecated StorageType enum with PolicyType (local/s3)
- Implement GET /user/settings/policies endpoint (was 501 stub)
- Add storage quota pre-allocation on upload session creation to prevent concurrent bypass
- Fix BigInteger for max_storage and user.storage to support >2GB values
- Add policy permission validation on upload and directory creation
- Use group's first policy as default on registration instead of hardcoded name
- Define TaskType.POLICY_MIGRATE and extend TaskProps with migration fields

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:38:20 +08:00

33 lines
830 B
Python

"""
存储服务模块
提供文件存储相关的服务,包括:
- 本地存储服务
- S3 存储服务
- 命名规则解析器
- 存储异常定义
"""
from .exceptions import (
DirectoryCreationError,
FileReadError,
FileWriteError,
InvalidPathError,
S3APIError,
S3MultipartUploadError,
StorageException,
StorageFileNotFoundError,
UploadSessionExpiredError,
UploadSessionNotFoundError,
)
from .local_storage import LocalStorageService
from .naming_rule import NamingContext, NamingRuleParser
from .object import (
adjust_user_storage,
copy_object_recursive,
delete_object_recursive,
permanently_delete_objects,
restore_objects,
soft_delete_objects,
)
from .migrate import migrate_file_with_task, migrate_directory_files
from .s3_storage import S3StorageService