pan123

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: May 19, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateShareRespData

type CreateShareRespData struct {
	// 分享ID
	ShareID int64 `json:"shareID"`
	// 分享码
	ShareKey string `json:"shareKey"`
}

type DisableDirectLinkRespData

type DisableDirectLinkRespData struct {
	// 成功禁用直链空间的文件夹的名称
	Filename string `json:"filename"`
}

type EnableDirectLinkRespData

type EnableDirectLinkRespData struct {
	// 成功启用直链空间的文件夹的名称
	Filename string `json:"filename"`
}

type FileListInfoRespData

type FileListInfoRespData struct {
	// 文件ID
	FileID int64 `json:"fileID"`
	// 文件名
	Filename string `json:"filename"`
	// 0-文件  1-文件夹
	Type int `json:"type"`
	// 文件大小
	Size int64 `json:"size"`
	// md5
	Etag string `json:"etag"`
	// 文件审核状态, 大于 100 为审核驳回文件
	Status int `json:"status"`
	// 目录ID
	ParentFileID int64 `json:"parentFileID"`
	// 目录名
	ParentName string `json:"parentName"`
	// 文件分类, 0-未知 1-音频 2-视频 3-图片
	Category int `json:"category"`
	// 文件类型
	ContentType string `json:"contentType"`
}

type FileUploadCallbackFunc added in v1.1.1

type FileUploadCallbackFunc func(info FileUploadCallbackInfo)

type FileUploadCallbackInfo added in v1.1.1

type FileUploadCallbackInfo struct {
	// Callback状态
	Status FileUploadCallbackStatus
	// 当前正在上传的chunkID, 仅在FILE_UPLOAD_CALLBACK_STATUS_FIRST_UPLOAD_CHUNK/FILE_UPLOAD_CALLBACK_STATUS_RETRY_UPLOAD_CHUNK时存在
	ChunkID int64
	// 总chunk数量, 仅在FILE_UPLOAD_CALLBACK_STATUS_FIRST_UPLOAD_CHUNK/FILE_UPLOAD_CALLBACK_STATUS_RETRY_UPLOAD_CHUNK/FILE_UPLOAD_CALLBACK_STATUS_VERIFY_CHUNK时存在
	ChunkCount int64
}

type FileUploadCallbackStatus added in v1.1.1

type FileUploadCallbackStatus int
const (
	// FILE_UPLOAD_CALLBACK_STATUS_CREATE_FILE 创建文件
	FILE_UPLOAD_CALLBACK_STATUS_CREATE_FILE FileUploadCallbackStatus = iota
	// FILE_UPLOAD_CALLBACK_STATUS_FIRST_UPLOAD_CHUNK 上传分块
	FILE_UPLOAD_CALLBACK_STATUS_FIRST_UPLOAD_CHUNK
	// FILE_UPLOAD_CALLBACK_STATUS_RETRY_UPLOAD_CHUNK 重试上传分块
	FILE_UPLOAD_CALLBACK_STATUS_RETRY_UPLOAD_CHUNK
	// FILE_UPLOAD_CALLBACK_STATUS_VERIFY_CHUNK 上传完毕, 进行校验
	FILE_UPLOAD_CALLBACK_STATUS_VERIFY_CHUNK
	// FILE_UPLOAD_CALLBACK_STATUS_REPORT_COMPLETE 通知上传完成(文件合并)
	FILE_UPLOAD_CALLBACK_STATUS_REPORT_COMPLETE
)

func (FileUploadCallbackStatus) String added in v1.1.1

func (s FileUploadCallbackStatus) String() string

type FileUploadRespData

type FileUploadRespData struct {
	// 预上传ID, 仅在需要异步查询上传结果时存在
	PreuploadID string
	// 是否秒传
	Reuse bool
	// 文件ID, 仅在秒传或无需异步查询上传结果时存在
	FileID int64
	// 是否需要异步查询上传结果
	Async bool
}

type GetDirectLinkM3u8InfoRespData

type GetDirectLinkM3u8InfoRespData struct {
	// 分辨率
	Resolutions string `json:"resolutions"`
	// 播放地址
	Address string `json:"address"`
}

type GetDirectLinkM3u8RespData

type GetDirectLinkM3u8RespData struct {
	// 直链转码列表
	List []GetDirectLinkM3u8InfoRespData `json:"list"`
}

type GetDirectLinkUrlRespData

type GetDirectLinkUrlRespData struct {
	// 文件对应的直链链接
	Url string `json:"url"`
}

type GetFileDetailRespData added in v1.1.0

type GetFileDetailRespData struct {
	// 文件ID
	FileID int64 `json:"fileID"`
	// 文件名
	Filename string `json:"filename"`
	// 0-文件  1-文件夹
	Type int `json:"type"`
	// 文件大小
	Size int64 `json:"size"`
	// md5
	Etag string `json:"etag"`
	// 文件审核状态, 大于 100 为审核驳回文件
	Status int `json:"status"`
	// 父级ID
	ParentFileID int64 `json:"parentFileID"`
	// 目录名
	ParentName string `json:"parentName"`
	// 文件创建时间
	CreateAt string `json:"createAt"`
	// 该文件是否在回收站, 0-否、1-是
	Trashed int `json:"trashed"`
}

type GetFileListRespData

type GetFileListRespData struct {
	// 文件列表
	FileList []FileListInfoRespData `json:"fileList"`
}

type GetOfflineDownloadProcessRespData added in v1.1.0

type GetOfflineDownloadProcessRespData struct {
	// 下载进度百分比,当文件下载失败,该进度将会归零
	Process float64 `json:"process"`
	// 下载状态, 0-进行中、1-下载失败、2-下载成功、3-重试中
	Status int `json:"status"`
}

type GetUserInfoRespData

type GetUserInfoRespData struct {
	// 用户账号ID
	Uid int64 `json:"uid"`
	// 昵称
	Nickname string `json:"nickname"`
	// 头像
	HeadImage string `json:"headImage"`
	// 手机号码
	Passport string `json:"passport"`
	// 邮箱
	Mail string `json:"mail"`
	// 已用空间
	SpaceUsed int64 `json:"spaceUsed"`
	// 永久空间
	SpacePermanent int64 `json:"spacePermanent"`
	// 临时空间
	SpaceTemp int64 `json:"spaceTemp"`
	// 临时空间到期日
	SpaceTempExpr string `json:"spaceTempExpr"`
}

type MkDirRespData

type MkDirRespData struct {
	// 创建的目录ID
	DirID int64 `json:"dirID"`
}

type OfflineDownloadRespData added in v1.1.0

type OfflineDownloadRespData struct {
	// 离线下载任务ID,可通过该ID调用查询任务进度接口获取下载进度
	TaskID int64 `json:"taskID"`
	// 下载状态, 0-进行中、1-下载失败、2-下载成功、3-重试中
	Status int `json:"status"`
}

type Pan123

type Pan123 struct {
	// contains filtered or unexported fields
}

func NewPan123

func NewPan123(accessToken, clientID, clientSecret string, timeout time.Duration, debug bool) *Pan123

NewPan123 创建123云盘SDK实例

@param accessToken string access_token, 如不存在可传空值并手动调用login方法获取

@param clientID string clientID, 如不提供则不支持自动获取access_token

@param clientSecret string clientSecret, 与clientID组成一对

@param timeout time.Duration HTTP请求超时时间, 默认为0

@param debug bool 是否开启debug

@return *Pan123

func (*Pan123) CreateShare

func (p123 *Pan123) CreateShare(shareName, fileIDList, sharePwd string, shareExpire int) (*CreateShareRespData, bool, error)

CreateShare 创建分享链接

分享码: 分享码拼接至 https://www.123pan.com/s/ 后面访问,即是分享页面

@param shareName string 分享链接

@param fileIDList string 分享文件ID列表, 以逗号分割, 最大只支持拼接100个文件ID, 示例:1,2,3

@param sharePwd string 分享链接提取码, 可为空

@param shareExpire int 分享链接有效期天数, 1 -> 1天、7 -> 7天、30 -> 30天、0 -> 永久

@return CreateShareRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) DeleteFile

func (p123 *Pan123) DeleteFile(fileIDs []int64) (bool, error)

DeleteFile 彻底删除文件

彻底删除文件前,文件必须要在回收站中,否则无法删除

@param fileIDs []int64 文件id数组,一次性最大不能超过 100 个文件

@return bool accessToken是否有更新

@return SDKError

func (p123 *Pan123) DisableDirectLink(fileID int64) (*DisableDirectLinkRespData, bool, error)

DisableDirectLink 禁用直链空间

@param fileID int64 禁用直链空间的文件夹的fileID

@return DisableDirectLinkRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) DoDirectLinkTranscode

func (p123 *Pan123) DoDirectLinkTranscode(ids []int64) (bool, error)

DoDirectLinkTranscode 发起直链转码

请注意: 文件必须要在直链空间下,且源文件是视频文件才能进行转码操作

@param ids []int64 需要转码的文件ID列表

@return bool accessToken是否有更新

@return SDKError

func (p123 *Pan123) EnableDirectLink(fileID int64) (*EnableDirectLinkRespData, bool, error)

EnableDirectLink 启用直链空间

@param fileID int64 启用直链空间的文件夹的fileID

@return EnableDirectLinkRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) FileUpload

func (p123 *Pan123) FileUpload(parentFileID int64, filename string, file *os.File, retry int) (*FileUploadRespData, bool, error)

FileUpload 上传文件

@param parentFileID int64 父目录id, 上传到根目录时填写0

@param filename string 文件名要小于128个字符且不能包含以下任何字符:"\/:*?|><。(注:不能重名)

@param retry int 上传单一文件块时的重试次数, 0为不重试

@return FileUploadRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) FileUploadWithCallback added in v1.1.1

func (p123 *Pan123) FileUploadWithCallback(parentFileID int64, filename string, file *os.File, retry int, cb FileUploadCallbackFunc) (*FileUploadRespData, bool, error)

FileUploadWithCallback 带Callback上传文件

@param parentFileID int64 父目录id, 上传到根目录时填写0

@param filename string 文件名要小于128个字符且不能包含以下任何字符:"\/:*?|><。(注:不能重名)

@param file *os.File 要上传的文件句柄

@param retry int 上传单一文件块时的重试次数, 0为不重试

@param cb FileUploadCallbackFunc Callback

@return FileUploadRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) GetAccessToken

func (p123 *Pan123) GetAccessToken() string

GetAccessToken 获取当前accessToken

@return string

func (*Pan123) GetAccessTokenExpiredAt added in v1.0.3

func (p123 *Pan123) GetAccessTokenExpiredAt() (time.Time, error)

GetAccessTokenExpiredAt 获取当前accessToken过期时间

该方法仅在通过Login获取accessToken时可用

@return time.Time

@return SDKError

func (*Pan123) GetDirectLinkM3u8

func (p123 *Pan123) GetDirectLinkM3u8(fileID []int64) (*GetDirectLinkM3u8RespData, bool, error)

GetDirectLinkM3u8 获取直链转码链接

@param fileID []int64 启用直链空间的文件夹的fileID

@return GetDirectLinkM3u8RespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) GetDirectLinkUrl

func (p123 *Pan123) GetDirectLinkUrl(fileID int64) (*GetDirectLinkUrlRespData, bool, error)

GetDirectLinkUrl 获取直链链接

@param fileID int64 需要获取直链链接的文件的fileID

@return GetDirectLinkUrlRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) GetFileDetail added in v1.1.0

func (p123 *Pan123) GetFileDetail(fileID int64) (*GetFileDetailRespData, bool, error)

GetFileDetail 获取文件详情

@param fileID int64 文件ID

@return GetFileDetailRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) GetFileList

func (p123 *Pan123) GetFileList(parentFileId, page, limit int64, orderBy, orderDirection string, trashed bool, searchData string) (*GetFileListRespData, bool, error)

GetFileList 获取文件列表

@param parentFileId int64 文件夹ID,根目录传 0

@param page int64 页码数

@param limit int64 每页文件数量,最大不超过100

@param orderBy string 排序字段,例如:file_id、size、file_name

@param orderDirection string 排序方向:asc、desc

@param trashed boolean 是否查看回收站的文件

@param searchData string 搜索关键字

@return GetFileListRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) GetOfflineDownloadProcess added in v1.1.0

func (p123 *Pan123) GetOfflineDownloadProcess(taskID int64) (*GetOfflineDownloadProcessRespData, bool, error)

GetOfflineDownloadProcess 获取离线下载进度

@param taskID int64 离线下载任务ID

@return GetFileDetailRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) GetUploadAsyncResult

func (p123 *Pan123) GetUploadAsyncResult(preuploadID string) (*UploadAsyncResultRespData, bool, error)

GetUploadAsyncResult 异步轮询获取上传结果

@param preuploadID string 预上传ID

@return UploadAsyncResultRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) GetUserInfo

func (p123 *Pan123) GetUserInfo() (*GetUserInfoRespData, bool, error)

GetUserInfo 获取用户信息

@return UploadAsyncResultRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) Login

func (p123 *Pan123) Login() error

Login 使用clientID、clientSecret获取accessToken

@return SDKError

func (*Pan123) MkDir

func (p123 *Pan123) MkDir(name string, parentID int64) (*MkDirRespData, bool, error)

MkDir 创建目录

@param name string 目录名(注:不能重名)

@param parentID int 父目录id,创建到根目录时填写 0

@return MkDirRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) MoveFile

func (p123 *Pan123) MoveFile(fileIDs []int64, toParentFileID int64) (bool, error)

MoveFile 移动文件

批量移动文件,单级最多支持100个

@param fileIDs []int64 文件id数组

@param toParentFileID int64 要移动到的目标文件夹id,移动到根目录时填写 0

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) OfflineDownload

func (p123 *Pan123) OfflineDownload(url, fileName, callBackUrl string, dirID int64) (*OfflineDownloadRespData, bool, error)

OfflineDownload 创建离线下载任务

离线下载任务仅支持 http/https 任务创建

@param url string 下载资源地址(http/https)

@param fileName string 自定义文件名称

@param callBackUrl string 回调地址, 回调内容请参考: https://123yunpan.yuque.com/org-wiki-123yunpan-muaork/cr6ced/wn77piehmp9t8ut4#jf5bZ

@param dirID int64 下载到的指定目录ID, 不支持下载到根目录, 传0会下载到名为"来自:离线下载"的目录中

@return UploadAsyncResultRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) QueryDirectLinkTranscode

func (p123 *Pan123) QueryDirectLinkTranscode(ids []int64) (*QueryDirectLinkTranscodeRespData, bool, error)

QueryDirectLinkTranscode 查询直链转码进度

@param ids []int64 视频文件ID列表

@return QueryDirectLinkTranscodeRespData

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) RecoverFile

func (p123 *Pan123) RecoverFile(fileIDs []int64) (bool, error)

RecoverFile 从回收站恢复文件

将回收站的文件恢复至删除前的位置

@param fileIDs []int64 文件id数组,一次性最大不能超过 100 个文件

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) RenameFile added in v1.1.0

func (p123 *Pan123) RenameFile(renameList []string) (bool, error)

RenameFile 重命名文件

@param renameList []string 数组,每个成员的格式为 文件ID|新的文件名

@return bool accessToken是否有更新

@return SDKError

func (*Pan123) TrashFile

func (p123 *Pan123) TrashFile(fileIDs []int64) (bool, error)

TrashFile 删除文件至回收站

删除的文件,会放入回收站中

@param fileIDs []int64 文件id数组,一次性最大不能超过 100 个文件

@return bool accessToken是否有更新

@return SDKError

type QueryDirectLinkTranscodeErrorListRespData

type QueryDirectLinkTranscodeErrorListRespData struct {
	// 文件ID
	ID []int64 `json:"id"`
	// 错误信息
	ErrorReason string `json:"errorReason"`
}

type QueryDirectLinkTranscodeRespData

type QueryDirectLinkTranscodeRespData struct {
	// 未发起过转码的ID
	NoneList []int64 `json:"noneList"`
	// 错误文件ID列表, 这些文件ID无法进行转码操作
	ErrorList []QueryDirectLinkTranscodeErrorListRespData `json:"errorList"`
	// 转码成功的文件ID列表
	Success []int64 `json:"success"`
	// 正在转码的文件ID列表
	Running []int64 `json:"running"`
}

type SDKError

type SDKError struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	TraceID string `json:"trace_id"`
}

func (*SDKError) Error

func (e *SDKError) Error() string

type UploadAsyncResultRespData

type UploadAsyncResultRespData struct {
	// 上传合并是否完成
	Completed bool `json:"completed"`
	// 上传成功的文件ID
	FileID int64 `json:"fileID"`
}

Jump to

Keyboard shortcuts

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