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  }