package filesystem import ( "time" ) // 文件大小限制常量 const ( // ZIP 文件大小限制 MaxZipSize = 100 * 1024 * 1024 // 100MB - ZIP 文件最大大小 MaxExtractSize = 500 * 1024 * 1024 // 500MB - 解压后总大小限制 MaxSingleFileSize = 50 * 1024 * 1024 // 50MB - ZIP 中单个文件最大大小 // HTTP 文件服务大小限制 MaxHTTPFileSize = 500 * 1024 * 1024 // 500MB - HTTP 访问文件最大大小 // 删除操作限制 MaxDeleteSizeGB = 1 * 1024 * 1024 * 1024 // 1GB - 单个文件删除大小限制 MaxDeleteDirSizeGB = 1 * 1024 * 1024 * 1024 // 1GB - 目录删除大小限制 ) // 时间相关常量 const ( // 审计日志 AuditFlushInterval = 5 * time.Second // 审计日志刷新间隔 AuditLogBufferSize = 100 // 审计日志缓冲区大小 // 回收站 RecycleBinRetentionDays = 30 // 回收站文件保留天数(天) RecycleBinRetentionPeriod = 30 * 24 * time.Hour // 回收站文件保留期 // 临时文件 TempFileCleanupAge = 24 * time.Hour // 临时文件清理周期 TempFileDir = "u-desk-zip" // 临时文件目录名 ) // 数量限制常量 const ( MaxDirectoryDepth = 15 // 最大目录深度 MaxFileCount = 1000 // 最大文件数量(目录) ) // 文件操作相关常量 const ( DefaultFilePermissions = 0644 // 默认文件权限 (rw-r--r--) DefaultDirPermissions = 0755 // 默认目录权限 (rwxr-xr-x) ) // 随机字符串相关常量 const ( RandomStringCharset = "abcdefghijklmnopqrstuvwxyz0123456789" RandomStringDefaultLength = 6 // 回收站文件名随机后缀长度 ) // 文件路径相关常量 const ( WindowsDriveLength = 2 // Windows 盘符长度 (C:) ) // 路径遍历检测字符串 const ( PathTraversalPattern = ".." // 路径遍历特征字符串 ) // 文件类型常量 const ( FileTypeImage = "image" FileTypeVideo = "video" FileTypeAudio = "audio" FileTypeDocument = "document" FileTypeText = "text" FileTypeArchive = "archive" FileTypeApplication = "application" ) // 安全相关常量 const ( // ZIP 安全 MinValidZipSize = 22 // ZIP 文件最小有效大小(文件头) ZipFileHeaderSignature = 0x504B // "PK" - ZIP 文件头签名 // 文件锁 LockCheckMaxRetries = 3 // 文件锁检查最大重试次数 LockCheckRetryInterval = 100 * time.Millisecond // 文件锁检查重试间隔 )