_115

package
v4.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2025 License: AGPL-3.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SplitFile

func SplitFile(fileSize int64) (chunks []oss.FileChunk, err error)

SplitFile 根据文件大小计算合适的分片方案 参数:

  • fileSize: 文件大小

返回:

  • []oss.FileChunk: 分片列表
  • error: 错误信息

func SplitFileByPartNum

func SplitFileByPartNum(fileSize int64, chunkNum int) ([]oss.FileChunk, error)

SplitFileByPartNum 按分片数量拆分文件 参数:

  • fileSize: 文件大小
  • chunkNum: 分片数量

返回:

  • []oss.FileChunk: 分片列表
  • error: 错误信息

func SplitFileByPartSize

func SplitFileByPartSize(fileSize int64, chunkSize int64) ([]oss.FileChunk, error)

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 FileObj

type FileObj struct {
	driver.File // 嵌入115驱动的File结构体
}

FileObj 封装115云盘文件对象

func (*FileObj) CreateTime

func (f *FileObj) CreateTime() time.Time

CreateTime 获取文件创建时间 实现model.Obj接口

func (*FileObj) GetHash

func (f *FileObj) GetHash() utils.HashInfo

GetHash 获取文件哈希信息 实现model.Obj接口

type Pan115

type Pan115 struct {
	model.Storage
	Addition
	// contains filtered or unexported fields
}

Pan115 115云盘存储驱动实现

func (*Pan115) Config

func (p *Pan115) Config() driver.Config

Config 返回驱动配置 实现driver.Driver接口

func (*Pan115) Copy

func (p *Pan115) Copy(ctx context.Context, srcObj, dstDir model.Obj) error

Copy 复制文件/目录 实现driver.Driver接口

func (*Pan115) DeleteOfflineTasks

func (p *Pan115) DeleteOfflineTasks(ctx context.Context, hashes []string, deleteFiles bool) error

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) Drop

func (p *Pan115) Drop(ctx context.Context) error

Drop 释放资源 实现driver.Driver接口

func (*Pan115) GenerateToken

func (p *Pan115) GenerateToken(fileID, preID, timeStamp, fileSize, signKey, signVal string) string

GenerateToken 生成上传令牌 参数:

  • fileID: 文件ID
  • preID: 预哈希值
  • timeStamp: 时间戳
  • fileSize: 文件大小
  • signKey: 签名密钥
  • signVal: 签名值

返回:

  • string: 生成的令牌

func (*Pan115) GetAddition

func (p *Pan115) GetAddition() driver.Additional

GetAddition 返回额外配置 实现driver.Driver接口

func (*Pan115) Init

func (p *Pan115) Init(ctx context.Context) error

Init 初始化驱动 实现driver.Driver接口

func (p *Pan115) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error)

Link 获取文件下载链接 实现driver.Driver接口

func (*Pan115) List

func (p *Pan115) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error)

List 列出目录内容 实现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) Move

func (p *Pan115) Move(ctx context.Context, srcObj, dstDir model.Obj) (model.Obj, error)

Move 移动文件/目录 实现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

func (p *Pan115) OfflineList(ctx context.Context) ([]*driver115.OfflineTask, error)

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) Remove

func (p *Pan115) Remove(ctx context.Context, obj model.Obj) error

Remove 删除文件/目录 实现driver.Driver接口

func (*Pan115) Rename

func (p *Pan115) Rename(ctx context.Context, srcObj model.Obj, newName string) (model.Obj, error)

Rename 重命名文件/目录 实现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

UploadByOSS 使用阿里云OSS SDK上传文件 参数:

  • ctx: 上下文
  • params: OSS上传参数
  • s: 文件流
  • dirID: 目标目录ID
  • up: 上传进度更新回调

返回:

  • *UploadResult: 上传结果
  • error: 错误信息

func (*Pan115) WaitLimit

func (p *Pan115) WaitLimit(ctx context.Context) error

WaitLimit 等待请求限制 如果设置了速率限制,会等待直到可以执行请求 参数:

  • ctx: 上下文

返回:

  • 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 上传结果结构体

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL