Documentation
¶
Overview ¶
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2020 tickstep.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- Variables
- func CmdAlbum() cli.Command
- func CmdCd() cli.Command
- func CmdConfig() cli.Command
- func CmdDownload() cli.Command
- func CmdDrive() cli.Command
- func CmdExport() cli.Command
- func CmdImport() cli.Command
- func CmdLocateUrl() cli.Command
- func CmdLogin() cli.Command
- func CmdLoglist() cli.Command
- func CmdLogout() cli.Command
- func CmdLs() cli.Command
- func CmdMkdir() cli.Command
- func CmdMv() cli.Command
- func CmdPwd() cli.Command
- func CmdQuota() cli.Command
- func CmdRapidUpload() cli.Command
- func CmdRecycle() cli.Command
- func CmdRename() cli.Command
- func CmdRm() cli.Command
- func CmdShare() cli.Command
- func CmdSu() cli.Command
- func CmdSync() cli.Command
- func CmdToken() cli.Command
- func CmdTool() cli.Command
- func CmdTree() cli.Command
- func CmdUpload() cli.Command
- func CmdWebdav() cli.Command
- func CmdWho() cli.Command
- func DoLoginHelper(refreshToken string) (refreshTokenStr string, webToken aliyunpan.WebLoginToken, error error)
- func EscapeStr(s string) string
- func ExportCsv(savePath string, data [][]string) bool
- func GetActivePanClient() *aliyunpan.PanClient
- func GetActiveUser() *config.PanUser
- func GetAllPathFolderByPath(pathStr string) []string
- func RandomStr(count int) string
- func RefreshTokenInNeed(activeUser *config.PanUser, deviceName string) bool
- func RunAlbumAddFile(albumName string, filePathList []string, filterOption AlbumFileCategoryOption)
- func RunAlbumCreate(name, description string)
- func RunAlbumDelete(nameList []string)
- func RunAlbumList()
- func RunAlbumListFile(name string)
- func RunAlbumRename(name, newName string)
- func RunAlbumRmFile(name string, nameList []string)
- func RunChangeDirectory(driveId, targetPath string)
- func RunDownload(paths []string, options *DownloadOptions)
- func RunExportFiles(driveId string, overwrite bool, panPaths []string, saveLocalFilePath string)
- func RunGetUserInfo() (userInfo *aliyunpan.UserInfo, error error)
- func RunImportFiles(driveId string, overwrite bool, panSavePath, localFilePath string)
- func RunLocateUrl(driveId string, paths []string, saveFilePath string)
- func RunLogin(useQrCodeLogin bool, refreshToken string) (tokenId, refreshTokenStr string, webToken aliyunpan.WebLoginToken, error error)
- func RunLs(driveId, targetPath string, lsOptions *LsOptions, ...)
- func RunMkdir(driveId, name string)
- func RunMove(driveId string, paths ...string)
- func RunRapidUpload(driveId string, isOverwrite bool, fileMetaList []string, savePanPath string)
- func RunRecycleClear(driveId string)
- func RunRecycleDelete(driveId string, fidStrList ...string)
- func RunRecycleList(driveId string)
- func RunRecycleRestore(driveId string, fidStrList ...string)
- func RunRemove(driveId string, paths ...string)
- func RunRename(driveId string, oldName string, newName string)
- func RunRenameBatch(skipConfirm bool, driveId string, expression, replacement, filePattern string)
- func RunShareCancel(shareIdList []string)
- func RunShareExport(option, saveFilePath string)
- func RunShareList()
- func RunShareMc(driveId string, hideRelativePath bool, panPaths []string)
- func RunShareSet(driveId string, paths []string, expiredTime string, sharePwd string)
- func RunSwitchDriveList(targetDriveId string)
- func RunSync(defaultTask *syncdrive.SyncTask, fileDownloadParallel, fileUploadParallel int, ...)
- func RunTestShellPattern(driveId string, pattern string)
- func RunTokenUpdate(modeFlag string)
- func RunTree(driveId, pathStr string, showFullPath bool)
- func RunUpload(localPaths []string, savePath string, opt *UploadOptions)
- func TryLogin() *config.PanUser
- func UnescapeStr(s string) string
- type AlbumFileCategoryOption
- type DownloadOptions
- type LocateDownloadOption
- type LsOptions
- type QuotaInfo
- type RapidUploadItem
- type SearchOptions
- type UploadOptions
Constants ¶
const ( // DefaultUploadMaxAllParallel 默认所有文件并发上传数量,即可以同时并发上传多少个文件 DefaultUploadMaxAllParallel = 1 // DefaultUploadMaxRetry 默认上传失败最大重试次数 DefaultUploadMaxRetry = 3 )
const (
DefaultSaveToPanPath = "/aliyunpan"
)
Variables ¶
var ( // MaxDownloadRangeSize 文件片段最大值 MaxDownloadRangeSize = 55 * converter.MB // DownloadCacheSize 默认每个线程下载缓存大小 DownloadCacheSize = 64 * converter.KB )
var ( ReloadConfigFunc = func(c *cli.Context) error { err := config.Config.Reload() if err != nil { fmt.Printf("重载配置错误: %s\n", err) } return nil } SaveConfigFunc = func(c *cli.Context) error { saveConfigMutex.Lock() defer saveConfigMutex.Unlock() err := config.Config.Save() if err != nil { fmt.Printf("保存配置错误: %s\n", err) } return nil } )
var ErrBadArgs = errors.New("参数错误")
var ErrNotLogined = errors.New("未登录账号")
var UploadFlags = []cli.Flag{ cli.IntFlag{ Name: "p", Usage: "本次操作文件上传并发数量,即可以同时并发上传多少个文件。0代表跟从配置文件设置(取值范围:1 ~ 20)", Value: 0, }, cli.IntFlag{ Name: "retry", Usage: "上传失败最大重试次数", Value: DefaultUploadMaxRetry, }, cli.IntFlag{ Name: "timeout", Usage: "上传请求超时时间,单位为秒。当遇到网络不好导致上传超时可以尝试调大该值,建议设置30秒以上", }, cli.BoolFlag{ Name: "np", Usage: "no progress 不展示上传进度条", }, cli.BoolFlag{ Name: "ow", Usage: "overwrite, 覆盖已存在的同名文件,注意已存在的文件会被移到回收站", }, cli.BoolFlag{ Name: "norapid", Usage: "不检测秒传。跳过费时的SHA1计算直接上传", }, cli.StringFlag{ Name: "driveId", Usage: "网盘ID", Value: "", }, cli.StringSliceFlag{ Name: "exn", Usage: "exclude name,指定排除的文件夹或者文件的名称,只支持正则表达式。支持同时排除多个名称,每一个名称就是一个exn参数", Value: nil, }, cli.IntFlag{ Name: "bs", Usage: "block size,上传分片大小,单位KB。推荐值:1024 ~ 10240。当上传极大单文件时候请适当调高该值", Value: 10240, }, }
Functions ¶
func CmdDownload ¶
func CmdLocateUrl ¶ added in v0.2.3
func CmdLoglist ¶
func CmdRapidUpload ¶
func CmdRecycle ¶
func DoLoginHelper ¶ added in v0.2.5
func DoLoginHelper(refreshToken string) (refreshTokenStr string, webToken aliyunpan.WebLoginToken, error error)
DoLoginHelper 登录助手,使用token进行登录
func GetActivePanClient ¶
func GetActiveUser ¶
func GetAllPathFolderByPath ¶ added in v0.0.5
func RefreshTokenInNeed ¶ added in v0.1.1
RefreshTokenInNeed 刷新refresh token
func RunAlbumAddFile ¶ added in v0.1.4
func RunAlbumAddFile(albumName string, filePathList []string, filterOption AlbumFileCategoryOption)
RunAlbumAddFile 增加网盘文件到相簿
func RunAlbumCreate ¶ added in v0.1.4
func RunAlbumCreate(name, description string)
func RunAlbumDelete ¶ added in v0.1.4
func RunAlbumDelete(nameList []string)
func RunAlbumList ¶ added in v0.1.4
func RunAlbumList()
func RunAlbumListFile ¶ added in v0.1.4
func RunAlbumListFile(name string)
func RunAlbumRename ¶ added in v0.1.4
func RunAlbumRename(name, newName string)
func RunAlbumRmFile ¶ added in v0.1.4
func RunChangeDirectory ¶
func RunChangeDirectory(driveId, targetPath string)
func RunExportFiles ¶
func RunGetUserInfo ¶
func RunImportFiles ¶
func RunLocateUrl ¶ added in v0.2.3
RunLocateUrl 执行下载网盘内文件
func RunLs ¶
func RunLs(driveId, targetPath string, lsOptions *LsOptions, orderBy aliyunpan.FileOrderBy, orderDirection aliyunpan.FileOrderDirection)
func RunRapidUpload ¶
RunRapidUpload 秒传
func RunRecycleDelete ¶
RunRecycleDelete 执行删除回收站文件或目录
func RunRecycleRestore ¶
RunRecycleRestore 执行还原回收站文件或目录
func RunRenameBatch ¶ added in v0.2.5
RunRenameBatch 批量重命名文件
func RunShareExport ¶ added in v0.1.9
func RunShareExport(option, saveFilePath string)
func RunShareSet ¶
RunShareSet 执行分享
func RunSwitchDriveList ¶
func RunSwitchDriveList(targetDriveId string)
func RunTestShellPattern ¶ added in v0.2.4
RunTestShellPattern 执行测试通配符
func RunUpload ¶
func RunUpload(localPaths []string, savePath string, opt *UploadOptions)
RunUpload 执行文件上传
Types ¶
type AlbumFileCategoryOption ¶ added in v0.1.4
type AlbumFileCategoryOption string
var ( ImageOnlyOption AlbumFileCategoryOption = "image" VideoOnlyOption AlbumFileCategoryOption = "video" ImageVideoOnlyOption AlbumFileCategoryOption = "image_video" AllFileOption AlbumFileCategoryOption = "none" )
type DownloadOptions ¶
type DownloadOptions struct {
IsPrintStatus bool
IsExecutedPermission bool
IsOverwrite bool
SaveTo string
Parallel int
Load int
MaxRetry int
NoCheck bool
ShowProgress bool
DriveId string
UseInternalUrl bool // 是否使用内置链接
ExcludeNames []string // 排除的文件名,包括文件夹和文件。即这些文件/文件夹不进行下载,支持正则表达式
}
DownloadOptions 下载可选参数
type LocateDownloadOption ¶
type LocateDownloadOption struct {
FromPan bool
}
LocateDownloadOption 获取下载链接可选参数
type QuotaInfo ¶
func RunGetQuotaInfo ¶
type RapidUploadItem ¶
秒传数据项
type UploadOptions ¶
type UploadOptions struct {
AllParallel int // 所有文件并发上传数量,即可以同时并发上传多少个文件
Parallel int // 单个文件并发上传数量
MaxRetry int
MaxTimeoutSec int // http请求超时时间,单位秒
NoRapidUpload bool
ShowProgress bool
IsOverwrite bool // 覆盖已存在的文件,如果同名文件已存在则移到回收站里
DriveId string
ExcludeNames []string // 排除的文件名,包括文件夹和文件。即这些文件/文件夹不进行上传,支持正则表达式
BlockSize int64 // 分片大小
UseInternalUrl bool // 是否使用内置链接
}
UploadOptions 上传可选项