baidupcs

package
v3.5.3+incompatible Latest Latest
Warning

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

Go to latest
Published: May 29, 2018 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package baidupcs BaiduPCS RESTful API 工具包

Index

Constants

View Source
const (
	// OperationGetUK 获取UK
	OperationGetUK = "获取UK"
	// OperationQuotaInfo 获取当前用户空间配额信息
	OperationQuotaInfo = "获取当前用户空间配额信息"
	// OperationFilesDirectoriesMeta 获取文件/目录的元信息
	OperationFilesDirectoriesMeta = "获取文件/目录的元信息"
	// OperationFilesDirectoriesList 获取目录下的文件列表
	OperationFilesDirectoriesList = "获取目录下的文件列表"
	// OperationRemove 删除文件/目录
	OperationRemove = "删除文件/目录"
	// OperationMkdir 创建目录
	OperationMkdir = "创建目录"
	// OperationRename 重命名文件/目录
	OperationRename = "重命名文件/目录"
	// OperationCopy 拷贝文件/目录
	OperationCopy = "拷贝文件/目录"
	// OperationMove 移动文件/目录
	OperationMove = "移动文件/目录"
	// OperationRapidUpload 秒传文件
	OperationRapidUpload = "秒传文件"
	// OperationUpload 上传单个文件
	OperationUpload = "上传单个文件"
	// OperationUploadTmpFile 分片上传—文件分片及上传
	OperationUploadTmpFile = "分片上传—文件分片及上传"
	// OperationUploadCreateSuperFile 分片上传—合并分片文件
	OperationUploadCreateSuperFile = "分片上传—合并分片文件"
	// OperationDownloadFile 下载单个文件
	OperationDownloadFile = "下载单个文件"
	// OperationDownloadStreamFile 下载流式文件
	OperationDownloadStreamFile = "下载流式文件"
	// OperationLocateDownload 提取下载链接
	OperationLocateDownload = "提取下载链接"
	// OperationCloudDlAddTask 添加离线下载任务
	OperationCloudDlAddTask = "添加离线下载任务"
	// OperationCloudDlQueryTask 精确查询离线下载任务
	OperationCloudDlQueryTask = "精确查询离线下载任务"
	// OperationCloudDlListTask 查询离线下载任务列表
	OperationCloudDlListTask = "查询离线下载任务列表"
	// OperationCloudDlCancelTask 取消离线下载任务
	OperationCloudDlCancelTask = "取消离线下载任务"
	// OperationCloudDlDeleteTask 删除离线下载任务
	OperationCloudDlDeleteTask = "删除离线下载任务"
	// OperationShareSet 创建分享链接
	OperationShareSet = "创建分享链接"
	// OperationShareCancel 取消分享
	OperationShareCancel = "取消分享"
	// OperationShareList 列出分享列表
	OperationShareList = "列出分享列表"
)
View Source
const (
	// StrSuccess 操作成功
	StrSuccess = "操作成功"
	// StrRemoteError 远端服务器返回错误
	StrRemoteError = "远端服务器返回错误"
	// StrJSONParseError json 数据解析失败
	StrJSONParseError = "json 数据解析失败"

	// ErrTypeInternalError 内部错误
	ErrTypeInternalError ErrType = iota
	// ErrTypeRemoteError 远端服务器返回错误
	ErrTypeRemoteError
	// ErrTypeNetError 网络错误
	ErrTypeNetError
	// ErrTypeJSONParseError json 数据解析失败
	ErrTypeJSONParseError
	// ErrTypeOthers 其他错误
	ErrTypeOthers
)
View Source
const (
	// OrderByName 根据文件名排序
	OrderByName OrderBy = "name"
	// OrderByTime 根据时间排序
	OrderByTime OrderBy = "time"
	// OrderBySize 根据大小排序, 注意目录无大小
	OrderBySize OrderBy = "size"
	// OrderAsc 升序
	OrderAsc Order = "asc"
	// OrderDesc 降序
	OrderDesc Order = "desc"
)

Variables

View Source
var DefaultOrderOptions = &OrderOptions{
	By:    OrderByName,
	Order: OrderAsc,
}

DefaultOrderOptions 默认的排序

Functions

func GetHTTPScheme

func GetHTTPScheme(https bool) (scheme string)

GetHTTPScheme 获取 http 协议, https 或 http

Types

type BaiduPCS

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

BaiduPCS 百度 PCS API 详情

func NewPCS

func NewPCS(appID int, bduss string) *BaiduPCS

NewPCS 提供app_id, 百度BDUSS, 返回 BaiduPCS 对象

func NewPCSWithClient

func NewPCSWithClient(appID int, client *requester.HTTPClient) *BaiduPCS

NewPCSWithClient 提供app_id, 自定义客户端, 返回 BaiduPCS 对象

func (*BaiduPCS) CloudDlAddTask

func (pcs *BaiduPCS) CloudDlAddTask(sourceURL, savePath string) (taskID int64, pcsError Error)

CloudDlAddTask 添加离线下载任务

func (*BaiduPCS) CloudDlCancelTask

func (pcs *BaiduPCS) CloudDlCancelTask(taskID int64) (pcsError Error)

CloudDlCancelTask 取消离线下载任务

func (*BaiduPCS) CloudDlDeleteTask

func (pcs *BaiduPCS) CloudDlDeleteTask(taskID int64) (pcsError Error)

CloudDlDeleteTask 删除离线下载任务

func (*BaiduPCS) CloudDlListTask

func (pcs *BaiduPCS) CloudDlListTask() (cl CloudDlTaskList, pcsError Error)

CloudDlListTask 查询离线下载任务列表

func (*BaiduPCS) CloudDlQueryTask

func (pcs *BaiduPCS) CloudDlQueryTask(taskIDs []int64) (cl CloudDlTaskList, pcsError Error)

CloudDlQueryTask 精确查询离线下载任务

func (*BaiduPCS) Copy

func (pcs *BaiduPCS) Copy(cpmvJSON ...*CpMvJSON) (pcsError Error)

Copy 批量拷贝文件/目录

func (*BaiduPCS) DownloadFile

func (pcs *BaiduPCS) DownloadFile(path string, downloadFunc DownloadFunc) (err error)

DownloadFile 下载单个文件

func (*BaiduPCS) DownloadStreamFile

func (pcs *BaiduPCS) DownloadStreamFile(path string, downloadFunc DownloadFunc) (err error)

DownloadStreamFile 下载流式文件

func (*BaiduPCS) FilesDirectoriesBatchMeta

func (pcs *BaiduPCS) FilesDirectoriesBatchMeta(paths ...string) (data FileDirectoryList, pcsError Error)

FilesDirectoriesBatchMeta 获取多个文件/目录的元信息

func (*BaiduPCS) FilesDirectoriesList

func (pcs *BaiduPCS) FilesDirectoriesList(path string, options *OrderOptions) (data FileDirectoryList, pcsError Error)

FilesDirectoriesList 获取目录下的文件和目录列表

func (*BaiduPCS) FilesDirectoriesMeta

func (pcs *BaiduPCS) FilesDirectoriesMeta(path string) (data *FileDirectory, pcsError Error)

FilesDirectoriesMeta 获取单个文件/目录的元信息

func (*BaiduPCS) FilesDirectoriesRecurseList

func (pcs *BaiduPCS) FilesDirectoriesRecurseList(path string, options *OrderOptions, handleFileDirectoryFunc HandleFileDirectoryFunc) (data FileDirectoryList, pcsError Error)

FilesDirectoriesRecurseList 递归获取目录下的文件和目录列表

func (*BaiduPCS) Isdir

func (pcs *BaiduPCS) Isdir(pcspath string) (isdir bool, pcsError Error)

Isdir 检查路径在网盘中是否为目录

func (*BaiduPCS) LocateDownload

func (pcs *BaiduPCS) LocateDownload(pcspath string) (info *URLInfo, pcsError Error)

LocateDownload 提取下载链接

func (*BaiduPCS) Mkdir

func (pcs *BaiduPCS) Mkdir(pcspath string) (pcsError Error)

Mkdir 创建目录

func (*BaiduPCS) Move

func (pcs *BaiduPCS) Move(cpmvJSON ...*CpMvJSON) (pcsError Error)

Move 批量移动文件/目录

func (*BaiduPCS) PrepareCloudDlAddTask

func (pcs *BaiduPCS) PrepareCloudDlAddTask(sourceURL, savePath string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareCloudDlAddTask 添加离线下载任务, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareCloudDlCancelTask

func (pcs *BaiduPCS) PrepareCloudDlCancelTask(taskID int64) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareCloudDlCancelTask 取消离线下载任务, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareCloudDlDeleteTask

func (pcs *BaiduPCS) PrepareCloudDlDeleteTask(taskID int64) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareCloudDlDeleteTask 取消离线下载任务, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareCloudDlListTask

func (pcs *BaiduPCS) PrepareCloudDlListTask() (dataReadCloser io.ReadCloser, pcsError Error)

PrepareCloudDlListTask 查询离线下载任务列表, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareCloudDlQueryTask

func (pcs *BaiduPCS) PrepareCloudDlQueryTask(taskIDs string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareCloudDlQueryTask 精确查询离线下载任务, 只返回服务器响应数据和错误信息, taskids 例子: 12123,234234,2344, 用逗号隔开多个 task_id

func (*BaiduPCS) PrepareCopy

func (pcs *BaiduPCS) PrepareCopy(cpmvJSON ...*CpMvJSON) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareCopy 批量拷贝文件/目录, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareFilesDirectoriesBatchMeta

func (pcs *BaiduPCS) PrepareFilesDirectoriesBatchMeta(paths ...string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareFilesDirectoriesBatchMeta 获取多个文件/目录的元信息, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareFilesDirectoriesList

func (pcs *BaiduPCS) PrepareFilesDirectoriesList(path string, options *OrderOptions) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareFilesDirectoriesList 获取目录下的文件和目录列表, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareLocateDownload

func (pcs *BaiduPCS) PrepareLocateDownload(pcspath string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareLocateDownload 提取下载链接, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareMkdir

func (pcs *BaiduPCS) PrepareMkdir(pcspath string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareMkdir 创建目录, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareMove

func (pcs *BaiduPCS) PrepareMove(cpmvJSON ...*CpMvJSON) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareMove 批量移动文件/目录, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareQuotaInfo

func (pcs *BaiduPCS) PrepareQuotaInfo() (dataReadCloser io.ReadCloser, pcsError Error)

PrepareQuotaInfo 获取当前用户空间配额信息, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareRapidUpload

func (pcs *BaiduPCS) PrepareRapidUpload(targetPath, contentMD5, sliceMD5, crc32 string, length int64) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareRapidUpload 秒传文件, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareRemove

func (pcs *BaiduPCS) PrepareRemove(paths ...string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareRemove 批量删除文件/目录, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareRename

func (pcs *BaiduPCS) PrepareRename(from, to string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareRename 重命名文件/目录, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareUpload

func (pcs *BaiduPCS) PrepareUpload(targetPath string, uploadFunc UploadFunc) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareUpload 上传单个文件, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareUploadCreateSuperFile

func (pcs *BaiduPCS) PrepareUploadCreateSuperFile(targetPath string, blockList ...string) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareUploadCreateSuperFile 分片上传—合并分片文件, 只返回服务器响应数据和错误信息

func (*BaiduPCS) PrepareUploadTmpFile

func (pcs *BaiduPCS) PrepareUploadTmpFile(uploadFunc UploadFunc) (dataReadCloser io.ReadCloser, pcsError Error)

PrepareUploadTmpFile 分片上传—文件分片及上传, 只返回服务器响应数据和错误信息

func (*BaiduPCS) QuotaInfo

func (pcs *BaiduPCS) QuotaInfo() (quota, used int64, pcsError Error)

QuotaInfo 获取当前用户空间配额信息

func (*BaiduPCS) RapidUpload

func (pcs *BaiduPCS) RapidUpload(targetPath, contentMD5, sliceMD5, crc32 string, length int64) (pcsError Error)

RapidUpload 秒传文件

func (*BaiduPCS) Remove

func (pcs *BaiduPCS) Remove(paths ...string) (pcsError Error)

Remove 批量删除文件/目录

func (*BaiduPCS) Rename

func (pcs *BaiduPCS) Rename(from, to string) (pcsError Error)

Rename 重命名文件/目录

func (*BaiduPCS) SetAPPID

func (pcs *BaiduPCS) SetAPPID(appID int)

SetAPPID 设置app_id

func (*BaiduPCS) SetHTTPS

func (pcs *BaiduPCS) SetHTTPS(https bool)

SetHTTPS 是否启用https连接

func (*BaiduPCS) SetUserAgent

func (pcs *BaiduPCS) SetUserAgent(ua string)

SetUserAgent 设置 User-Agent

func (*BaiduPCS) ShareCancel

func (pcs *BaiduPCS) ShareCancel(shareIDs []int64) (pcsError Error)

ShareCancel 取消分享

func (*BaiduPCS) ShareList

func (pcs *BaiduPCS) ShareList(page int) (records ShareRecordInfoList, pcsError Error)

ShareList 列出分享列表

func (*BaiduPCS) ShareSet

func (pcs *BaiduPCS) ShareSet(paths []string, option *ShareOption) (s *Shared, pcsError Error)

ShareSet 分享文件

func (*BaiduPCS) UK

func (pcs *BaiduPCS) UK() (uk int64, pcsError Error)

UK 获取用户 UK

func (*BaiduPCS) Upload

func (pcs *BaiduPCS) Upload(targetPath string, uploadFunc UploadFunc) (pcsError Error)

Upload 上传单个文件

func (*BaiduPCS) UploadCreateSuperFile

func (pcs *BaiduPCS) UploadCreateSuperFile(targetPath string, blockList ...string) (pcsError Error)

UploadCreateSuperFile 分片上传—合并分片文件

func (*BaiduPCS) UploadTmpFile

func (pcs *BaiduPCS) UploadTmpFile(uploadFunc UploadFunc) (md5 string, pcsError Error)

UploadTmpFile 分片上传—文件分片及上传

type CloudDlFileInfo

type CloudDlFileInfo struct {
	FileName string `json:"file_name"`
	FileSize int64  `json:"file_size"`
}

CloudDlFileInfo 离线下载的文件信息

type CloudDlTaskInfo

type CloudDlTaskInfo struct {
	TaskID       int64
	Status       int // 0下载成功, 1下载进行中, 2系统错误, 3资源不存在, 4下载超时, 5资源存在但下载失败, 6存储空间不足, 7任务取消
	StatusText   string
	FileSize     int64  // 文件大小
	FinishedSize int64  // 文件大小
	CreateTime   int64  // 创建时间
	StartTime    int64  // 开始时间
	FinishTime   int64  // 结束时间
	SavePath     string // 保存的路径
	SourceURL    string // 资源地址
	TaskName     string // 任务名称, 一般为文件名
	OdType       int
	FileList     []*CloudDlFileInfo
	Result       int // 0查询成功,结果有效,1要查询的task_id不存在
}

CloudDlTaskInfo 离线下载的任务信息

func (*CloudDlTaskInfo) ParseText

func (ci *CloudDlTaskInfo) ParseText()

ParseText 解析状态码

type CloudDlTaskList

type CloudDlTaskList []*CloudDlTaskInfo

CloudDlTaskList 离线下载的任务信息列表

func (CloudDlTaskList) String

func (cl CloudDlTaskList) String() string

type CpMvJSON

type CpMvJSON struct {
	From string `json:"from"` // 源文件或目录
	To   string `json:"to"`   // 目标文件或目录
}

CpMvJSON 源文件目录的地址和目标文件目录的地址

func (*CpMvJSON) JSON

func (cj *CpMvJSON) JSON() (data []byte, err error)

JSON json 数据构造

type CpMvListJSON

type CpMvListJSON struct {
	List []*CpMvJSON `json:"list"`
}

CpMvListJSON []*CpMvJSON 对象数组

func (*CpMvListJSON) JSON

func (clj *CpMvListJSON) JSON() (data []byte, err error)

JSON json 数据构造

func (*CpMvListJSON) String

func (clj *CpMvListJSON) String() string

type DownloadFunc

type DownloadFunc func(downloadURL string, jar *cookiejar.Jar) error

DownloadFunc 下载文件处理函数

type ErrInfo

type ErrInfo struct {
	ErrCode int    `json:"error_code"` // 错误代码
	ErrMsg  string `json:"error_msg"`  // 错误消息
	// contains filtered or unexported fields
}

ErrInfo 错误信息

func NewErrorInfo

func NewErrorInfo(operation string) *ErrInfo

NewErrorInfo 提供operation操作名称, 返回 *ErrInfo

func (*ErrInfo) Error

func (e *ErrInfo) Error() string

func (*ErrInfo) ErrorCode

func (e *ErrInfo) ErrorCode() int

ErrorCode 返回远端服务器错误代码

func (*ErrInfo) ErrorMsg

func (e *ErrInfo) ErrorMsg() string

ErrorMsg 返回远端服务器错误信息

func (*ErrInfo) ErrorType

func (e *ErrInfo) ErrorType() ErrType

ErrorType return error type "ErrType"

func (*ErrInfo) FindErr

func (e *ErrInfo) FindErr() (errCode int, errMsg string)

FindErr 查找已知错误

func (*ErrInfo) Operation

func (e *ErrInfo) Operation() string

Operation return operation

func (*ErrInfo) OriginalError

func (e *ErrInfo) OriginalError() error

OriginalError 返回原始错误

type ErrType

type ErrType int

ErrType 错误类型

type Error

type Error interface {
	error
	Operation() string    // 操作
	ErrorType() ErrType   // 错误类型
	ErrorCode() int       // 远端服务器错误代码
	ErrorMsg() string     // 远端服务器错误信息
	OriginalError() error // 原始错误
}

Error 错误详情接口

type FileDirectory

type FileDirectory struct {
	FsID        int64  // fs_id
	Path        string // 路径
	Filename    string // 文件名 或 目录名
	Ctime       int64  // 创建日期
	Mtime       int64  // 修改日期
	MD5         string // md5 值
	Size        int64  // 文件大小 (目录为0)
	Isdir       bool   // 是否为目录
	Ifhassubdir bool   // 是否含有子目录 (只对目录有效)

	Parent   *FileDirectory    // 父目录信息
	Children FileDirectoryList // 子目录信息
}

FileDirectory 文件或目录的元信息

func (*FileDirectory) String

func (f *FileDirectory) String() string

type FileDirectoryList

type FileDirectoryList []*FileDirectory

FileDirectoryList FileDirectory 的 指针数组

func (FileDirectoryList) AllFilePaths

func (fl FileDirectoryList) AllFilePaths() (pcspaths []string)

AllFilePaths 返回所有的网盘路径, 包括子目录

func (FileDirectoryList) Count

func (fl FileDirectoryList) Count() (fileN, directoryN int64)

Count 获取文件总数和目录总数

func (FileDirectoryList) TotalSize

func (fl FileDirectoryList) TotalSize() int64

TotalSize 获取目录下文件的总大小

type HandleFileDirectoryFunc

type HandleFileDirectoryFunc func(depth int, fd *FileDirectory)

HandleFileDirectoryFunc 处理文件或目录的元信息

type Order

type Order string

Order 升序降序

type OrderBy

type OrderBy string

OrderBy 排序字段

type OrderOptions

type OrderOptions struct {
	By    OrderBy
	Order Order
}

OrderOptions 列文件/目录可选项

type PathJSON

type PathJSON struct {
	Path string `json:"path"`
}

PathJSON 网盘路径

type PathsListJSON

type PathsListJSON struct {
	List []*PathJSON `json:"list"`
}

PathsListJSON 网盘路径列表

func (*PathsListJSON) JSON

func (plj *PathsListJSON) JSON(paths ...string) (data []byte, err error)

JSON json 数据构造

type ShareOption

type ShareOption struct {
	Password string // 密码
	Period   int    // 有效期
}

ShareOption 分享可选项

type ShareRecordInfo

type ShareRecordInfo struct {
	ShareID     int64    `json:"shareId"`
	FsIds       []string `json:"fsIds"`
	Passwd      string   `json:"passwd"`
	Shortlink   string   `json:"shortlink"`
	TypicalPath string   `json:"typicalPath"`
}

ShareRecordInfo 分享信息

func (*ShareRecordInfo) Clean

func (sri *ShareRecordInfo) Clean()

Clean 清理

func (*ShareRecordInfo) HasPasswd

func (sri *ShareRecordInfo) HasPasswd() bool

HasPasswd 是否需要提取码

type ShareRecordInfoList

type ShareRecordInfoList []*ShareRecordInfo

ShareRecordInfoList 分享信息列表

func (*ShareRecordInfoList) Clean

func (sril *ShareRecordInfoList) Clean()

Clean 清理

type Shared

type Shared struct {
	Link    string `json:"link"`
	ShareID int64  `json:"shareid"`
}

Shared 分享信息

type URLInfo

type URLInfo struct {
	URLs []struct {
		URL string `json:"url"`
	} `json:"urls"`
}

URLInfo 下载链接详情

func (*URLInfo) SingleURL

func (ui *URLInfo) SingleURL(https bool) *url.URL

SingleURL 返回单条下载链接

func (*URLInfo) URLStrings

func (ui *URLInfo) URLStrings(https bool) (urls []*url.URL)

URLStrings 返回下载链接数组

type UploadFunc

type UploadFunc func(uploadURL string, jar *cookiejar.Jar) (resp *http.Response, err error)

UploadFunc 上传文件处理函数

Jump to

Keyboard shortcuts

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