86 lines
2.3 KiB
Go
86 lines
2.3 KiB
Go
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 // 文件锁检查重试间隔
|
|
)
|