Files
disknext/sqlmodels/__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

154 lines
4.1 KiB
Python

from .auth_identity import (
AuthIdentity,
AuthIdentityResponse,
AuthProviderType,
BindIdentityRequest,
ChangePasswordRequest,
)
from .user import (
BatchDeleteRequest,
JWTPayload,
MagicLinkRequest,
UnifiedLoginRequest,
UnifiedRegisterRequest,
RefreshTokenRequest,
AccessTokenBase,
RefreshTokenBase,
TokenResponse,
User,
UserBase,
UserStorageResponse,
UserPublic,
UserResponse,
UserSettingResponse,
UserThemeUpdateRequest,
SettingOption,
UserSettingUpdateRequest,
WebAuthnInfo,
UserTwoFactorResponse,
# 管理员DTO
UserAdminUpdateRequest,
UserCalibrateResponse,
UserAdminDetailResponse,
)
from .user_authn import (
AuthnDetailResponse,
AuthnFinishRequest,
AuthnRenameRequest,
UserAuthn,
)
from .color import ChromaticColor, NeutralColor, ThemeColorsBase, BUILTIN_DEFAULT_COLORS
from .theme_preset import (
ThemePreset, ThemePresetBase,
ThemePresetCreateRequest, ThemePresetUpdateRequest,
ThemePresetResponse, ThemePresetListResponse,
)
from .download import (
Download,
DownloadAria2File,
DownloadAria2Info,
DownloadAria2InfoBase,
DownloadStatus,
DownloadType,
)
from .node import (
Aria2Configuration,
Aria2ConfigurationBase,
Node,
NodeStatus,
NodeType,
)
from .group import (
Group, GroupBase, GroupClaims, GroupOptions, GroupOptionsBase, GroupAllOptionsBase, GroupResponse,
# 管理员DTO
GroupCreateRequest, GroupUpdateRequest, GroupDetailResponse, GroupListResponse,
)
from .object import (
CreateFileRequest,
CreateUploadSessionRequest,
DirectoryCreateRequest,
DirectoryResponse,
FileMetadata,
FileMetadataBase,
Object,
ObjectBase,
ObjectCopyRequest,
ObjectDeleteRequest,
ObjectFileFinalize,
ObjectMoveRequest,
ObjectMoveUpdate,
ObjectPropertyDetailResponse,
ObjectPropertyResponse,
ObjectRenameRequest,
ObjectResponse,
ObjectSwitchPolicyRequest,
ObjectType,
PolicyResponse,
UploadChunkResponse,
UploadSession,
UploadSessionBase,
UploadSessionResponse,
# 管理员DTO
AdminFileResponse,
AdminFileListResponse,
FileBanRequest,
# 回收站DTO
TrashItemResponse,
TrashRestoreRequest,
TrashDeleteRequest,
)
from .physical_file import PhysicalFile, PhysicalFileBase
from .uri import DiskNextURI, FileSystemNamespace
from .order import Order, OrderStatus, OrderType
from .policy import (
Policy, PolicyBase, PolicyCreateRequest, PolicyOptions, PolicyOptionsBase,
PolicyType, PolicySummary, PolicyUpdateRequest,
)
from .redeem import Redeem, RedeemType
from .report import Report, ReportReason
from .setting import (
Setting, SettingsType, SiteConfigResponse, AuthMethodConfig,
# 管理员DTO
SettingItem, SettingsListResponse, SettingsUpdateRequest, SettingsUpdateResponse,
)
from .share import (
Share, ShareBase, ShareCreateRequest, CreateShareResponse, ShareResponse,
ShareOwnerInfo, ShareObjectItem, ShareDetailResponse,
AdminShareListItem,
)
from .source_link import SourceLink
from .storage_pack import StoragePack
from .tag import Tag, TagType
from .task import Task, TaskProps, TaskPropsBase, TaskStatus, TaskType, TaskSummary, TaskSummaryBase
from .webdav import (
WebDAV, WebDAVBase,
WebDAVCreateRequest, WebDAVUpdateRequest, WebDAVAccountResponse,
)
from .file_app import (
FileApp, FileAppType, FileAppExtension, FileAppGroupLink, UserFileAppDefault,
# DTO
FileAppSummary, FileViewersResponse, SetDefaultViewerRequest, UserFileAppDefaultResponse,
FileAppCreateRequest, FileAppUpdateRequest, FileAppResponse, FileAppListResponse,
ExtensionUpdateRequest, GroupAccessUpdateRequest, WopiSessionResponse,
)
from .wopi import WopiFileInfo, WopiAccessTokenPayload
from .database_connection import DatabaseManager
from .model_base import (
MCPBase,
MCPMethod,
MCPRequestBase,
MCPResponseBase,
ResponseBase,
# Admin Summary DTO
MetricsSummary,
LicenseInfo,
VersionInfo,
AdminSummaryResponse,
)
# 通用分页模型
from sqlmodel_ext import ListResponse