upx is a tool for managing files in UPYUN. Mac, Linux, Windows supported

基本功能
安装
可执行程序二进制下载地址
源码编译
需要安装 Golang 编译环境
$ git clone https://github.com/upyun/upx.git
$ cd upx && make
or
$ go install github.com/upyun/upx/cmd/upx@master
Windows
PS> scoop bucket add carrot https://github.com/upyun/carrot.git
Install upx from github or upyun cdn:
PS> scoop install upx-github
PS> scoop install upx-upcdn
Docker
docker build -t upx .
docker run --rm upx upx -v
使用
所有命令都支持 -h 查看使用方法
| global options |
说明 |
| –quiet, -q |
不显示信息 |
| –auth value |
auth 字符串 |
| –help, -h |
显示帮助信息 |
| –version, -v |
显示版本号 |
login
使用又拍云操作员账号登录服务, 登录成功后将会保存会话,支持同时登录多个服务, 使用 switch 切换会话。
需要提供的验证字段
- ServiceName: 服务(bucket)的名称
- Operator: 操作员名
- Password: 操作员密码
语法
upx login
示例
upx login
#ServiceName: testService
#Operator: upx
#Password: password
logout
退出当前登录的会话,如果存在多个登录的会话,可以使用 switch 切换到需要退出的会话,然后退出。
语法
upx logout
示例
upx logout
# Goodbye upx/testService ~
sessions
列举出当前登录的所有会话
语法
upx sessions
示例
upx sessions
# > mybucket1
# > mybucket2
# > mybucket3
switch
切换登录会话, 通过 sessions 命令可以查看所有的会话列表。
| args |
说明 |
| service-name |
服务名称(bucket) |
语法
upx switch <service-name>
示例
upx switch mybucket3
info
查看当前服务的状态。
语法
upx info
示例
upx info
> ServiceName: mybucket1
> Operator: tester
> CurrentDir: /
> Usage: 2.69GB
ls
默认按文件修改时间先后顺序输出
| options |
说明 |
| -d |
仅显示目录 |
| -r |
文件修改时间倒序输出 |
| –color |
根据文件类型输出不同的颜色 |
| -c v |
仅显示前 v 个文件或目录, 默认全部显示 |
| –mtime v |
通过文件被修改的时间删选,参考 Linux find |
语法
upx ls [options...] [remote-path]
示例
查看根目录下的文件
upx ls /
只查看根目录下的目录
upx ls -d /
只查看根目录下的修改时间大于3天的文件
upx ls --mtime +3 /
只查看根目录下的修改时间小于1天的文件
upx ls --mtime -1 /
cd
改变当前的工作路径,默认工作路径为根目录, 工作路径影响到操作时的默认远程路径。
语法
upx cd <remote-path>
示例
将当前工作路径切换到 /www
upx cd /www
pwd
显示当前所在的远程目录
语法
upx pwd
示例
upx pwd
> /www
mkdir
创建远程目录
语法
upx mkdir <remote-dir>
示例
在当前工作目录下创建一个名为 mytestbucket 的目录
upx mkdir mytestbucket
在根目录下创建一个名为 mytestbucket 的目录
upx mkdir /mytestbucket
tree
显示目录结构,树形模式显示
语法
upx tree
示例
查看 /ccc 目录下的目录结构
upx tree /ccc
> |-- aaacd
> ! |-- mail4788ca.png
> |-- ccc
> ! |-- Eroge de Subete wa Kaiketsu Dekiru! The Animation - 02 (2022) [1080p-HEVC-WEBRip][8D1929F5].mkv
> ! |-- baima_text_auditer.tar
> ! |-- linux-1.txt
get
下载文件
| args |
说明 |
| remote-path |
远程路径,支持文件或文件夹 |
| saved-file |
需要保存到的本地目录,或指定完整的文件名 |
| options |
说明 |
| -w |
多线程下载 (1-10) (default: 5) |
| -c |
恢复中断的下载 |
| –start |
只下载路径字典序大于等于 start 的文件或目录 |
| –end |
只下载路径字典序小于 end 的文件或目录 |
语法
upx get [options] <remote-path> [saved-file]
示例
下载文件
upx get /baima_text_auditer.tar
下载文件时指定保存路径
upx get /baima_text_auditer.tar ./baima_text_auditer2.tar
多线程下载文件
upx get -w 10 /baima_text_auditer.tar
恢复中断的下载
upx get -c /baima_text_auditer.tar
put
上传文件或文件夹
| args |
说明 |
| local-file |
本地的文件或文件夹 |
| url |
远端 url 文件 |
| remote-file |
需要保存到的远程文件路径或文件夹 |
| options |
说明 |
| -w |
多线程下载 (1-10) (default: 5) |
| -all |
上传包含目录下隐藏的文件和文件夹 |
语法
upx put <local-file>|<url> [remote-file]
示例
上传本地文件,到远程绝对路径
upx put aaa.mp4 /video/aaa.mp4
上传本地目录,到远程绝对路径
upx put ./video /myfiles
上传 url 文件,到远程绝对路径
upx put https://xxxx.com/myfile.tar.gz /myfiles
保存上传文件的错误日志
upx put . --err-log=err.log
上传大文件的过程中同时下载
upx put --in-progress ./file_1G ./inprogress/file_1G
upx get --in-progress /inprogress/file_1G inprogress/file_1G
upload
上传文件或目录,支持多文件,文件名匹配
| args |
说明 |
| local-file |
本地的文件或文件夹, 或匹配文件规则 |
| remote-path |
需要保存到的远程文件路径 |
| options |
说明 |
| -w |
多线程下载 (1-10) (default: 5) |
| -all |
上传包含目录下隐藏的文件和文件夹 |
| –remote |
远程路径 |
语法
upx upload [--remote remote-path] <local-file>
示例
上传当前路径下的所有 jpg 图片到 /images 目录
upx upload --remote /images ./*.jpg
保存上传文件的错误日志
upx upload . --err-log=1.log
rm
默认不会删除目录,支持通配符 *
| options |
说明 |
| -d |
仅删除目录 |
| -a |
删除目录跟文件 |
| –async |
异步删除,目录可能需要二次删除 |
语法
upx rm [options] <remote-file>
示例
删除目录 /www
upx rm -d /www
删除文件 /aaa.png
upx rm /aaa.png
mv
在 bucket 内部移动文件
| args |
说明 |
| source-file |
需要移动的源文件 |
| dest-file |
需要移动到的目标文件 |
语法
upx mv [options] <source-file> <dest-file>
示例
移动文件
upx mv /aaa.mp4 /abc/aaa.mp4
移动文件,如果目标存在则强制覆盖
upx mv -f /aaa.mp4 /abc/aaa.mp4
cp
在 bucket 内部拷贝文件
| args |
说明 |
| source-file |
需要复制的源文件 |
| dest-file |
需要复制到的目标文件 |
语法
upx mv [options] <source-file> <dest-file>
示例
移动文件
upx cp /aaa.mp4 /abc/aaa.mp4
复制文件,如果目标存在则强制覆盖
upx cp -f /aaa.mp4 /abc/aaa.mp4
sync
sync 本地路径 存储路径
| args |
说明 |
| local-path |
本地的路径 |
| remote-path |
远程文件路径 |
| options |
说明 |
| -w |
指定并发数,默认为 5 |
| –delete |
删除上一次同步后本地删除的文件 |
语法
upx sync <local-path> <remote-path>
示例
同步本地路径和远程路径
upx sync ./workspace /workspace
auth
生成包含空间名操作员密码信息, auth 空间名 操作员 密码
示例
当命令中包含 --auth 参数时,会忽略已登陆的信息。
生成 auth 字符串
upx auth mybucket user password
通过生成的 auth 字符串上传文件
upx --auth=auth-string put temp.file
post
| options |
说明 |
| –app value |
app 名称 |
| –notify value |
回调地址 |
| –task value |
任务文件名 |
purge
purge url --list urls
| options |
说明 |
| –list value |
批量刷新文件名 |
TODO
评论