Documentation
¶
Index ¶
- func SplitFile(fileSize int64) (chunks []oss.FileChunk, err error)
- func SplitFileByPartNum(fileSize int64, chunkNum int) ([]oss.FileChunk, error)
- func SplitFileByPartSize(fileSize int64, chunkSize int64) ([]oss.FileChunk, error)
- func UploadDigestRange(stream model.FileStreamer, rangeSpec string) (result string, err error)
- type Addition
- type FileObj
- type Pan115
- func (p *Pan115) Config() driver.Config
- func (p *Pan115) Copy(ctx context.Context, srcObj, dstDir model.Obj) error
- func (p *Pan115) DeleteOfflineTasks(ctx context.Context, hashes []string, deleteFiles bool) error
- func (p *Pan115) DownloadWithUA(pickCode, ua string) (*driver115.DownloadInfo, error)
- func (p *Pan115) Drop(ctx context.Context) error
- func (p *Pan115) GenerateToken(fileID, preID, timeStamp, fileSize, signKey, signVal string) string
- func (p *Pan115) GetAddition() driver.Additional
- func (p *Pan115) Init(ctx context.Context) error
- func (p *Pan115) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error)
- func (p *Pan115) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error)
- func (p *Pan115) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) (model.Obj, error)
- func (p *Pan115) Move(ctx context.Context, srcObj, dstDir model.Obj) (model.Obj, error)
- func (p *Pan115) OfflineDownload(ctx context.Context, uris []string, dstDir model.Obj) ([]string, error)
- func (p *Pan115) OfflineList(ctx context.Context) ([]*driver115.OfflineTask, error)
- func (p *Pan115) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, ...) (model.Obj, error)
- func (p *Pan115) Remove(ctx context.Context, obj model.Obj) error
- func (p *Pan115) Rename(ctx context.Context, srcObj model.Obj, newName string) (model.Obj, error)
- func (p *Pan115) UploadByMultipart(ctx context.Context, params *driver115.UploadOSSParams, fileSize int64, ...) (*UploadResult, error)
- func (p *Pan115) UploadByOSS(ctx context.Context, params *driver115.UploadOSSParams, s model.FileStreamer, ...) (*UploadResult, error)
- func (p *Pan115) WaitLimit(ctx context.Context) error
- type UploadResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SplitFileByPartNum ¶
SplitFileByPartNum 按分片数量拆分文件 参数:
- fileSize: 文件大小
- chunkNum: 分片数量
返回:
- []oss.FileChunk: 分片列表
- error: 错误信息
func SplitFileByPartSize ¶
SplitFileByPartSize 按分片大小拆分文件 参数:
- fileSize: 文件大小
- chunkSize: 分片大小
返回:
- []oss.FileChunk: 分片列表
- error: 错误信息
func UploadDigestRange ¶
func UploadDigestRange(stream model.FileStreamer, rangeSpec string) (result string, err error)
UploadDigestRange 计算指定范围的文件哈希值 参数:
- stream: 文件流
- rangeSpec: 范围规范字符串,格式为"开始-结束"
返回:
- string: 计算得到的哈希值
- error: 错误信息
Types ¶
type Addition ¶
type Addition struct {
// Cookie 115网盘的Cookie信息
Cookie string `json:"cookie" type:"text" help:"Cookie和二维码令牌至少需要提供一个"`
// QRCodeToken 115网盘的二维码登录令牌
QRCodeToken string `json:"qrcode_token" type:"text" help:"Cookie和二维码令牌至少需要提供一个"`
// QRCodeSource 二维码来源设备类型
QRCodeSource string `` /* 162-byte string literal not displayed */
// PageSize 每页列表大小
PageSize int64 `json:"page_size" type:"number" default:"1000" help:"115驱动列表API的每页大小"`
// LimitRate API请求速率限制
LimitRate float64 `json:"limit_rate" type:"float" default:"2" help:"限制所有API请求速率(每秒[限制]个请求)"`
driver.RootID
}
Addition 定义115云盘驱动的额外配置选项
type Pan115 ¶
Pan115 115云盘存储驱动实现
func (*Pan115) DeleteOfflineTasks ¶
DeleteOfflineTasks 删除离线下载任务 参数:
- ctx: 上下文
- hashes: 任务哈希列表
- deleteFiles: 是否同时删除已下载的文件
返回:
- error: 错误信息
func (*Pan115) DownloadWithUA ¶
func (p *Pan115) DownloadWithUA(pickCode, ua string) (*driver115.DownloadInfo, error)
DownloadWithUA 使用指定用户代理获取下载信息 参数:
- pickCode: 文件提取码
- ua: 用户代理字符串
返回:
- *driver115.DownloadInfo: 下载信息
- error: 错误信息
func (*Pan115) GenerateToken ¶
GenerateToken 生成上传令牌 参数:
- fileID: 文件ID
- preID: 预哈希值
- timeStamp: 时间戳
- fileSize: 文件大小
- signKey: 签名密钥
- signVal: 签名值
返回:
- string: 生成的令牌
func (*Pan115) GetAddition ¶
func (p *Pan115) GetAddition() driver.Additional
GetAddition 返回额外配置 实现driver.Driver接口
func (*Pan115) Link ¶
func (p *Pan115) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error)
Link 获取文件下载链接 实现driver.Driver接口
func (*Pan115) MakeDir ¶
func (p *Pan115) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) (model.Obj, error)
MakeDir 创建目录 实现driver.Driver接口
func (*Pan115) OfflineDownload ¶
func (p *Pan115) OfflineDownload(ctx context.Context, uris []string, dstDir model.Obj) ([]string, error)
OfflineDownload 添加离线下载任务 参数:
- ctx: 上下文
- uris: 下载链接列表
- dstDir: 目标目录
返回:
- []string: 成功添加的任务ID列表
- error: 错误信息
func (*Pan115) OfflineList ¶
OfflineList 获取离线下载任务列表 参数:
- ctx: 上下文
返回:
- []*driver115.OfflineTask: 离线下载任务列表
- error: 错误信息
func (*Pan115) Put ¶
func (p *Pan115) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, up driver.UpdateProgress) (model.Obj, error)
Put 上传文件 实现driver.Driver接口
func (*Pan115) UploadByMultipart ¶
func (p *Pan115) UploadByMultipart(ctx context.Context, params *driver115.UploadOSSParams, fileSize int64, s model.FileStreamer, dirID string, up driver.UpdateProgress, opts ...driver115.UploadMultipartOption) (*UploadResult, error)
UploadByMultipart 使用分片上传方式上传文件 参数:
- ctx: 上下文
- params: OSS上传参数
- fileSize: 文件大小
- s: 文件流
- dirID: 目标目录ID
- up: 上传进度更新回调
- opts: 分片上传选项
返回:
- *UploadResult: 上传结果
- error: 错误信息
func (*Pan115) UploadByOSS ¶
func (p *Pan115) UploadByOSS(ctx context.Context, params *driver115.UploadOSSParams, s model.FileStreamer, dirID string, up driver.UpdateProgress) (*UploadResult, error)
UploadByOSS 使用阿里云OSS SDK上传文件 参数:
- ctx: 上下文
- params: OSS上传参数
- s: 文件流
- dirID: 目标目录ID
- up: 上传进度更新回调
返回:
- *UploadResult: 上传结果
- error: 错误信息
type UploadResult ¶
type UploadResult struct {
driver.BasicResp // 嵌入基本响应结构体
Data struct {
PickCode string `json:"pick_code"` // 文件提取码
FileSize int `json:"file_size"` // 文件大小
FileID string `json:"file_id"` // 文件ID
ThumbURL string `json:"thumb_url"` // 缩略图URL
Sha1 string `json:"sha1"` // 文件SHA1哈希值
Aid int `json:"aid"` // 附件ID
FileName string `json:"file_name"` // 文件名
Cid string `json:"cid"` // 目录ID
IsVideo int `json:"is_video"` // 是否为视频文件,1表示是
} `json:"data"` // 响应数据
}
UploadResult 上传结果结构体
Click to show internal directories.
Click to hide internal directories.