• Stars
    star
    193
  • Rank 200,347 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 9 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

UPYUN Storage Command Tool

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

Test Build Lint Go Report Card GitHub tag (latest by date)

基本功能

  • 支持基本文件系统操作命令,如 mkdir, cd, ls, rm, pwd
  • 支持上传文件或目录到又拍云存储
  • 支持从又拍云存储下载文件或目录到本地
  • 支持增量同步文件到又拍云存储
  • 支持删除又拍云存储中的文件或目录,并且支持通配符 *
  • 支持多用户,多操作系统
  • 支持基于时间列目录以及删除文件
  • 支持 tree 获取目录结构
  • 支持提交异步处理任务
  • 更加准确简洁的进度条
  • 使用 UPYUN GoSDK v3
  • 同步目录支持 --delete
  • 支持 CDN 缓存刷新

安装

可执行程序二进制下载地址

源码编译

需要安装 Golang 编译环境

$ git clone https://github.com/upyun/upx.git
$ cd upx && make

or

$ go get -u 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 查看使用方法

命令 说明
login 登录又拍云存储
logout 退出帐号
sessions 查看所有的会话
switch 切换会话
info 显示服务名、用户名等信息
ls 显示当前目录下文件和目录信息
cd 改变工作目录(进入一个目录)
pwd 显示当前所在目录
mkdir 创建目录
tree 显示目录结构
get 下载一个文件或目录
put 上传一个文件或目录
upload 上传多个文件或目录或 http(s) 文件, 支持 Glob 模式过滤上传文件
mv 在同一 bucket 内移动文件
cp 在同一 bucket 内复制文件
rm 删除目录或文件
sync 目录增量同步,类似 rsync
auth 生成包含空间名操作员密码信息的 auth 字符串
post 提交异步处理任务
purge 提交 CDN 缓存刷新任务
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

默认按文件修改时间先后顺序输出

args 说明
remote-path 远程路径
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

改变当前的工作路径,默认工作路径为根目录, 工作路径影响到操作时的默认远程路径。

args 说明
remote-path 远程路径

语法

upx cd <remote-path>

示例

将当前工作路径切换到 /www

upx cd /www

pwd

显示当前所在的远程目录

语法

upx pwd

示例

upx pwd

> /www

mkdir

创建远程目录

args 说明
remote-dir 远程目录

语法

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 本地的文件或文件夹
remote-file 需要保存到的远程文件路径或文件夹
options 说明
-w 多线程下载 (1-10) (default: 5)
-all 上传包含目录下隐藏的文件和文件夹

语法

upx put <local-file> [remote-file]

示例

上传本地文件,到远程绝对路径

upx put aaa.mp4 /video/aaa.mp4

上传本地目录,到远程绝对路径

upx put ./video /myfiles

upload

上传文件或目录或 url 链接,支持多文件,文件名匹配

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

上传 http 文件到 /files 目录

upx upload --remote /files https://xxxx.com/myfile.tar.gz

rm

默认不会删除目录,支持通配符 *

args 说明
remote-file 远程文件
options 说明
-d 仅删除目录
-a 删除目录跟文件
--async 异步删除,目录可能需要二次删除
--mtime v 参考 Linux find

语法

upx rm [options] <remote-file>

示例

删除目录 /www

upx rm -d /www

删除文件 /aaa.png

upx rm /aaa.png

mv

bucket 内部移动文件

args 说明
source-file 需要移动的源文件
dest-file 需要移动到的目标文件
options 说明
-f 允许覆盖目标文件

语法

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 需要复制到的目标文件
options 说明
-f 允许覆盖目标文件

语法

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 参数时,会忽略已登陆的信息。

upx auth mybucket user password

post

options 说明
--app value app 名称
--notify value 回调地址
--task value 任务文件名

purge

purge url --list urls

options 说明
--list value 批量刷新文件名

TODO

  • put 支持断点续传
  • upx 支持指定 API 地址

More Repositories

1

slardar

Updating your upstream list and run lua scripts without reloading Nginx.
Lua
495
star
2

lua-resty-checkups

Manage Nginx upstreams in pure Lua.
Lua
259
star
3

php-sdk

UPYUN SDK for PHPer
PHP
176
star
4

upyun-resty

UPYUN's open source software for OpenResty development
175
star
5

Android-short-video

Android-short-video 是又拍云推出的一款适用于 Android 平台的短视频 SDK,它包含短视频拍摄、编辑、合成、上传,还包含短视频播放器,再结合又拍云存储和 CDN,您就可以开启您的短视频业务了。
Java
172
star
6

python-sdk

UPYUN Python SDK
Python
115
star
7

java-sdk

UPYUN Java SDK
Java
114
star
8

ios-live-sdk

UPYUN 直播 SDK。播放器、采集器、推流器统一集成,功能完备接口简练,可以快速安装使用。采集与音视频处理模块开源,灵活性强可以满足复杂定制需求。UPYUN 直播平台一站式服务:http://docs.upyun.com/live/
Objective-C
104
star
9

node-sdk

UPYUN SDK for JS(support browser and node.js)
JavaScript
95
star
10

android-player-sdk

UPYUN Android 流媒体播放器
Java
87
star
11

go-sdk

UPYUN Go SDK
Go
76
star
12

android-push-sdk

UPYUN Android 推流 SDK
Java
74
star
13

cafex

Cafex is a pure Elixir implementation of Kafka client
Elixir
69
star
14

wechat-sdk

又拍云微信小程序 SDK
JavaScript
69
star
15

lua-resty-limit-rate

Lua module for limiting request rate for OpenResty/ngx_lua, using the "token bucket" method.
Perl
68
star
16

docs

UPYUN Docs
CSS
66
star
17

android-sdk

UPYUN Android SDK
Java
51
star
18

ios-short-video

ios-short-video 是又拍云推出的一款适用于 iOS 平台的短视频 SDK,它包含短视频拍摄、编辑、合成、上传,还包含短视频播放器,再结合又拍云存储和 CDN,您就可以开启您的短视频业务了。https://www.upyun.com/products/short-video
Objective-C
51
star
19

node-upyun

UPYUN Node.js SDK !!!Deprecated
48
star
20

lua-resty-sync

Synchronizing data based on version changes
Lua
41
star
21

ios-form-sdk

UPYUN iOS SDK
Objective-C
37
star
22

ios-sdk

UPYUN iOS SDK
Objective-C
32
star
23

ruby-sdk

UPYUN Ruby SDK
Ruby
29
star
24

js-multipart-upload

HTML5 multipart-uploader demo
JavaScript
28
star
25

upyun.com

The next generation website
Vue
27
star
26

token-examples

Multilingual token generation example
JavaScript
19
star
27

upyun.github.io

UPYUN Engineering Blog
CSS
18
star
28

ueditor

Integrate UPYUN API to UEditor.
JavaScript
17
star
29

multipart-upload-android-sdk

multipart-upload-android-sdk
Java
15
star
30

discuz-plugin

UPYUN for discuz
PHP
13
star
31

node-av-pretreatment

音视频处理 SDK(Node.js)
JavaScript
11
star
32

c-sdk

UPYUN C SDK
C
10
star
33

js-form-api

表单 API,前端使用的简单 Demo
9
star
34

c-sharp-sdk

UPYUN C-Sharp SDK
C#
8
star
35

upyun-uss-script

Commonly used script for UPYUN Storage Service
Python
8
star
36

multipart-upload-php-sdk

又拍云分块上传 SDK !!! Deprecated
PHP
7
star
37

multipart-upload-ios-sdk

multipart-upload-ios-sdk
Objective-C
7
star
38

erlang-sdk

UPYUN Erlang SDK
Erlang
6
star
39

swift-sdk

又拍云 swift SDK
Swift
5
star
40

Android-QuickLogin

Java
4
star
41

ios-video-player

Objective-C
4
star
42

iOS-QuickLogin

Objective-C
4
star
43

umeditor-for-UPYUN

Integrated UPYUN API to umeditor
JavaScript
3
star
44

av-pretreatment-php-sdk

又拍云音视频预处理 PHP SDK !!! Deprecated
PHP
3
star
45

java-purge-sdk

JAVA version cache refresh for UPYUN
Java
2
star
46

ios-fusion-sdk

UPYUN 融合云 iOS SDK
Objective-C
2
star
47

utilgo

Some awesome go utils
Go
2
star
48

android-fusion-sdk

UPYUN 融合云 Android SDK
Java
1
star
49

carrot

UPYUN scoop packages
PowerShell
1
star
50

rust-sdk

1
star
51

gzjion

multi gz files merge to one
C
1
star