Windows环境
说明
使用该工具可实现文件/文件夹上传、下载及删除等操作,上传单个文件无大小限制。该工具依赖 Java 环境,Java 版本要求:JDK 6 及以上。
Note
此工具需要借助命令行完成,如果需要使用图形化工具可以使用我们提供的 AWS S3 兼容工具 S3Browser。
安装
将 nos-cmd-java-0.0.2.tar.gz 解压到 PC 中,如:
可以看到该目录包含如下文件和文件夹:conf lib logs third-party tool.bat tool.sh
修改配置文件
- 添加 Accesskey 和 Secretkey:编辑 conf/credentials.properties,改成自己的 Accesskey 和 Secretkey。
- 修改 NOS 地址:编辑conf/host.properties,根据自己的需要修改 host 的值,即 NOS 的服务器地址(内网域名或者外网域名), 一般情况无需修改。
使用tool.bat
在小工具目录下,按住 Shift,选择在此处打开命令窗口调出命令行
1. 查看有些什么功能
D:\nos-cmd-java-0.0.2> tool.bat
2. 列出用户的所有桶
命令格式:command -listbuckets
举例:
D:\nos-cmd-java-0.0.2> tool.bat -listbuckets
Bucket Name:testbucket
Bucket Name:testbucket2
Task Success!
当前用户有两个桶,分别为 testbucket 和 testbucket2, 输出的T ask Success! 表示成功,如果输出 Task Failed! 表示请求失败,失败原因在控制台会打印出来,也可以在 ./logs/ 目录下查看,所有命令皆如此,空桶也会列出。
3. 查看桶的 acl 属性
命令格式:command -getbucketacl <bucketname>
举例:
D:\nos-cmd-java-0.0.2> tool.bat -getbucketacl testbucket
bucket:testbucket acl:public-read
Task Success!
获取桶testbucket的acl属性,其属性为public-read
4. 设置桶的acl属性
命令格式:command -setbucketacl <bucketname> <acl>
举例:
D:\nos-cmd-java-0.0.2> tool.bat -setbucketacl testbucket private
The acl of bucket:testbucket has changed to private
Task Success!
设置桶 testbucket 的 acl 属性,上面将桶 testbucket 的 acl 属性设置为 private。设置为公开读则
5. 上传文件
命令格式:command -putfile <file> <bucketname> [-key <objectkey>] [-replace false(default)|true]
Attention
上传文件,开头不要加'/',例如根目录下的a 目录下的1.txt。则上传路径为 a/1.txt
如果 file 是一个文件,则可以使用 -key 来指定存在 nos 中的 objectkey, 如果不指定 -key,则 objectkey 为 file 字符串。 如果 file 是一个目录,则会递归的将目录下的所有文件上传到 nos,objectkey 为 各级子目录.../文件名。 如果指定 -replace 的值为 true,则会覆盖桶内已经存在的同名文件, 如果为 false,则桶内如果已经存在同名文件,不会上传该文件。
举例:
D:\nos-cmd-java-0.0.2> tool.bat -putfile a.txt testbucket -key nosa.txt
upload nosa.txt finished
Task Success!
将本地 a.txt 文件上传到 nos,在 nos 中的 objectkey 为 nosa.txt。上传过程中会打印上传进度,如 1%,10%...,完成后打印finished。
D:\nos-cmd-java-0.0.2> tool.bat -putfile a.txt testbucket
upload a.txt finished
Task Success!
将本地 a.txt 文件上传到 nos,在 nos 中的 objectkey 为 a.txt
D:\nos-cmd-java-0.0.2> tool.bat -putfile conf testbucket -replace true
upload log4j.properties finished
upload host.properties finished
upload credentials.properties finished
-----------------------------
Finished files number:3
Failed files number:0
All files in directoryconf have upload finished.
Task Success!
将本地 conf 文件夹下的文件上传到 nos,成功上传 log4j.properties,host.properties,credentials.properties 三个文件到 nos。
6. 上传流或文件
命令格式:command -putstream <bucketname> <objectkey> [<file>]
指定了
举例:
D:\nos-cmd-java-0.0.2> tool.bat -putstream testbucket haha.txt
hello,world
输入内容如hello,world再按Ctrl+D结束流,即可将内容上传到桶testbucket的haha.txt文件中
D:\nos-cmd-java-0.0.2> tool.bat -putstream testbucket haha.txt conf/log4j.properties
upload haha.txt finished
Task Success!
将本地文件 conf/log4j.properties 上传到桶 testbucket 的,存在 nos 中的文件名为 haha.txt
7. 查看桶或文件是否存在
命令格式:command -lookup <bucketname> [<key>]
不指定
举例:
D:\nos-cmd-java-0.0.2> tool.bat -lookup testbucket
bucket testbucket exists!
Task Success!
查看是否存在桶testbucket。
D:\nos-cmd-java-0.0.2> tool.bat -lookup testbucket nosa.txt
objectKey nosa.txt exists, size is 12
查看桶 testbucket 是否存在文件 nosa.txt,如果存在,还会返回该文件的长度。
D:\nos-cmd-java-0.0.2> tool.bat -lookup testbucket nosa.txt2
objectKey nosa.txt2 not exists
Task Success!
桶 testbucket 不存在文件 nosa.txt2
8. 列出桶内文件列表
命令格式: command -listobjects <bucketname> [-prefix <prefix>] [-marker <marker>] [-maxkeys <maxkeys>]
指定 prefix、marker、maxkeys(都是可选)来列出文件列表, maxkeys 不指定时默认为 100。
举例:
D:\nos-cmd-java-0.0.2> tool.bat -listobjects testbucket -maxkeys 2
ObjectKey:1.jpg Size:8855 LastModified:Mon Apr 25 16:59:37 CST 2016
ObjectKey:1.mp3 Size:75448 LastModified:Tue Feb 11 17:55:57 CST 2014
next marker: 1.mp3
Task Success!
上例中一次性最多列出桶 testbucket 内的 2 个文件,如果要列出下一页的 2 个文件,可以使用上次返回的 next marker 值(上例为1.mp3)作为本次的 marker 参数,如下:
D:\nos-cmd-java-0.0.2> tool.bat -listobjects testbucket -maxkeys 2 -marker 1.mp3
ObjectKey:1.txt Size:22226 LastModified:Fri Feb 21 15:15:12 CST 2014
ObjectKey:error.gif Size:730671 LastModified:Tue Mar 22 19:37:25 CST 2016
next marker: error.gif
Task Success!
9. 下载文件
命令格式:command -getobject <bucket> <key> [<file>]
下载文件,显示在标准输出或者存到文件中(指定 file)
举例:
D:\nos-cmd-java-0.0.2> tool.bat -getobject testbucket nosa.txt
hello,world
Task Success!
下载桶 testbucket 中的 nosa.txt 文件,显示在控制台,nosa.txt 对象的内容为 hello,world
D:\nos-cmd-java-0.0.2> tool.bat -getobject testbucket nosa.txt nosa_local.txt
Task Success!
下载桶 testbucket 中的 nosa.txt 文件,保存到本地 nosa_local.txt 文件中
10. 将桶内文件下载到本地文件夹
命令格式:command -getobjects <bucket> -prefix=<prefix> <directory> [<isCover>]
将桶内以
举例:
D:\nos-cmd-java-0.0.2> tool.bat -getobjects testbucket -prefix=1 tmp true Begin to download... Success download file:1.gif Success download file:1.html \----------------------------- Finished download files number:2 Failed download files number:0 Task Success!
将桶 testbucket 内对象名以 1 开头的对象下载到本地的 tmp 目录下,如果 tmp 目录存在同名文件,则覆盖。
D:\nos-cmd-java-0.0.2> tool.bat -getobjects testbucket -prefix= tmp true Begin to download... Success download file:1.gif Success download file:1.html Success download file:a Failed download file:a/b Failed download file:a/c \----------------------------- Finished download files number:3 Failed download files number:2 Task Success!
没有指定 -prefix 的值,将桶 testbucket 内所有对象同步到本地 tmp 文件夹中,上例上有两个文件下载失败了,可以查看日志,其原因是因为有个文件名 a,a/b 保存在本地目录下时会创建 a 文件夹,与文件 a 冲突导致。
11. 重命名对象
命令格式:command -moveobject <srcbuc> <srckey> <desbuc> <deskey>
当前 srcbuc 和 desbuc 必须一致,该命令将 srcbuc 桶内的 srckey 对象重命名为 deskey
举例:
D:\nos-cmd-java-0.0.2> tool.bat -moveobject testbucket nosa.txt testbucket nosb.txt
Task Success!
将桶 testbucket 的 nosa.txt 文件重命名为 noab.txt
12. 复制对象
命令格式:command -copyobject <srcbucket> <srckey> <descbucket> <desckey>
举例:
D:\nos-cmd-java-0.0.2> tool.bat -copyobject testbucket nosb.txt testbucket nosa.txt
Task Success!
将桶 testbucket 的 nosb.txt 文件复制到桶 testbucket 的 nosa.txt 文件
13. 删除文件
命令格式:command -deleteobject <bucket> <key>
举例:
D:\nos-cmd-java-0.0.2> tool.bat -deleteobject testbucket nosb.txt
Task Success!
删除桶 testbucket 中的 nosb.txt 对象
14. 工具日志
工具日志保存在 nos-cmd-java-0.0.2\logs\nos-tools.log 中,使用工具过程中如有问题,可查看日志分析定位。