github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/pkg/serializer/upload.go (about) 1 package serializer 2 3 import ( 4 "encoding/gob" 5 model "github.com/cloudreve/Cloudreve/v3/models" 6 "time" 7 ) 8 9 // UploadPolicy slave模式下传递的上传策略 10 type UploadPolicy struct { 11 SavePath string `json:"save_path"` 12 FileName string `json:"file_name"` 13 AutoRename bool `json:"auto_rename"` 14 MaxSize uint64 `json:"max_size"` 15 AllowedExtension []string `json:"allowed_extension"` 16 CallbackURL string `json:"callback_url"` 17 } 18 19 // UploadCredential 返回给客户端的上传凭证 20 type UploadCredential struct { 21 SessionID string `json:"sessionID"` 22 ChunkSize uint64 `json:"chunkSize"` // 分块大小,0 为部分快 23 Expires int64 `json:"expires"` // 上传凭证过期时间, Unix 时间戳 24 UploadURLs []string `json:"uploadURLs,omitempty"` 25 Credential string `json:"credential,omitempty"` 26 UploadID string `json:"uploadID,omitempty"` 27 Callback string `json:"callback,omitempty"` // 回调地址 28 Path string `json:"path,omitempty"` // 存储路径 29 AccessKey string `json:"ak,omitempty"` 30 KeyTime string `json:"keyTime,omitempty"` // COS用有效期 31 Policy string `json:"policy,omitempty"` 32 CompleteURL string `json:"completeURL,omitempty"` 33 } 34 35 // UploadSession 上传会话 36 type UploadSession struct { 37 Key string // 上传会话 GUID 38 UID uint // 发起者 39 VirtualPath string // 用户文件路径,不含文件名 40 Name string // 文件名 41 Size uint64 // 文件大小 42 SavePath string // 物理存储路径,包含物理文件名 43 LastModified *time.Time // 可选的文件最后修改日期 44 Policy model.Policy 45 Callback string // 回调 URL 地址 46 CallbackSecret string // 回调 URL 47 UploadURL string 48 UploadID string 49 Credential string 50 } 51 52 // UploadCallback 上传回调正文 53 type UploadCallback struct { 54 PicInfo string `json:"pic_info"` 55 } 56 57 // GeneralUploadCallbackFailed 存储策略上传回调失败响应 58 type GeneralUploadCallbackFailed struct { 59 Error string `json:"error"` 60 } 61 62 func init() { 63 gob.Register(UploadSession{}) 64 }