閱讀976 返回首頁    go 網易 go 網易蜂巢


小工具手冊

目錄

Java環境

JDK 6 及以上版本

安裝

nos-cmd-java-0.0.2.tar.gz解壓到一個目錄下,如:

$ tar -zxvf nos-cmd-java-0.0.2.tar.gz
$ cd nos-cmd-java-0.0.2/
$ ls
conf  lib  third-party  tool.bat  tool.sh
$ chmod +x tool.sh(linux)

可以看到該目錄包含如下文件和文件夾:conf lib logs third-party tool.bat tool.sh

修改配置文件

1. 添加Accesskey和Secretkey:編輯conf/credentials.properties,改成自己的Accesskey和Secretkey。 2. 修改NOS地址:編輯conf/host.properties,根據自己的需要修改host的值,即NOS的服務器地址(內網域名或者外網域名), 一般情況無需修改。 使用tool.sh

使用 tool.sh

tool.sh 為你在 Linux 環境下的使用命令,tool.bat 為 Windows 環境下的使用命令,tool.sh 和 tool.bat 的使用方法一致,以下以 tool.sh 為例說明各功能點的使用方法

首次使用需要賦予 tool.sh 文件可執行權限:chmod +x tool.sh

查看有些什麼功能

$ ./tool.sh

列出用戶的所有桶

命令格式:command -listbuckets

舉例:

$ ./tool.sh -listbuckets
Bucket Name:123
Bucket Name:126
Task Success!

當前用戶有兩個桶,分別為123和126, 輸出的Task Success!表示成功,如果輸出Task Failed!表示請求失敗,失敗原因在控製台會打印出來,也可以在./logs/目錄下查看,所有命令皆如此。

查看桶的acl屬性

命令格式:command -getbucketacl <bucketname>

舉例:

./tool.sh -getbucketacl 123
bucket:123 acl:public-read
Task Success!

獲取桶 123 的 acl 屬性,其屬性為 public-read

設置桶的 acl 屬性

命令格式:command -setbucketacl <bucketname> <acl>

舉例:

./tool.sh -setbucketacl 123 private
The acl of bucket:123 has changed to private
Task Success!

設置桶 123 的 acl 屬性,上麵將桶 123 的 acl 屬性設置為 private。設置為公開讀則 acl 填 public-read

上傳文件

命令格式:command -putfile <file> <bucketname> [-key <objectkey>] [-replace false(default)|true]

如果file是一個文件,則可以使用-key來指定存在nos中的objectkey, 如果不指定-key,則objectkey為file字符串。 如果file是一個目錄,則會遞歸的將目錄下的所有文件上傳到nos,objectkey為 各級子目錄.../文件名。 如果指定-replace的值為true,則會覆蓋桶內已經存在的同名文件, 如果為false,則桶內如果已經存在同名文件,不會上傳該文件。 舉例:

$ ./tool.sh -putfile a.txt 123 -key nosa.txt
upload nosa.txt finished
Task Success!

將本地a.txt文件上傳到nos,在nos中的objectkey為nosa.txt。上傳過程中會打印上傳進度,如1%,10%...,完成後打印finished。

$ ./tool.sh -putfile a.txt 123
upload a.txt finished
Task Success!

將本地a.txt文件上傳到nos,在nos中的objectkey為a.txt

$ ./tool.sh -putfile conf 123 -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。

上傳流和文件

命令格式:command -putstream <bucketname> <objectkey> [<file>]

指定了<file>上傳文件,否則上傳流。

舉例:

$ ./tool.sh  -putstream 123 haha.txt
hello,world

輸入內容如hello,world再按Ctrl+D結束流,即可將內容上傳到桶123的haha.txt文件中

$ ./tool.sh  -putstream 123 haha.txt conf/log4j.properties
upload haha.txt finished
Task Success!

將本地文件 conf/log4j.properties 上傳到桶 123 的,存在 NOS 中的文件名為 haha.txt

查看桶或者文件是否存在

命令格式:command -lookup <bucketname> [<key>]

不指定<key>則查看桶是否存在,否則查看是否存在桶及桶是否存在某文件

舉例:

$ ./tool.sh -lookup 123
bucket 123 exists!
Task Success!

查看是否存在桶123。

$ ./tool.sh -lookup 123 nosa.txt
objectKey nosa.txt exists, size is 12

查看桶123是否存在文件nosa.txt,如果存在,還會返回該文件的長度。

$ ./tool.sh -lookup 123 nosa.txt2
objectKey nosa.txt2 not exists
Task Success!

桶 123 不存在文件 nosa.txt2

列出桶內文件列表

命令格式: command -listobjects <bucketname> [-prefix <prefix>] [-marker <marker>] [-maxkeys <maxkeys>]

指定prefix、marker、maxkeys(都是可選)來列出文件列表, maxkeys不指定時默認為100。

舉例:

$ ./tool.sh -listobjects 123 -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!

上例中一次性最多列出桶123內的2個文件,如果要列出下一頁的2個文件,可以使用上次返回的next marker值(上例為1.mp3)作為本次的marker參數,如下:

$ ./tool.sh -listobjects 123 -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!

下載文件

命令格式:command -getobject <bucket> <key> [<file>]

下載文件,顯示在標準輸出或者存到文件中(指定file)

舉例:

$ ./tool.sh -getobject 123 nosa.txt
hello,world
Task Success!

下載桶123中的nosa.txt文件,顯示在控製台,nosa.txt對象的內容為hello,world

$ ./tool.sh -getobject 123 nosa.txt nosa_local.txt
Task Success!

下載桶123中的nosa.txt文件,保存到本地nosa_local.txt文件中

將桶內文件下載到本地文件夾

命令格式:command -getobjects <bucket> -prefix=<prefix> <directory> [<isCover>]

將桶內以<prefix>為前綴的對象下載到本地<directory>目錄中,如果本地目錄中已存在某個同名文件,由<isCover>值來決定是否覆蓋本地同名文件,<isCover>值為ture時覆蓋,取其他值或者不指定<isCover>則不覆蓋。

舉例:

$ ./tool.sh  -getobjects 123 -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!

將桶123內對象名以1開頭的對象下載到本地的tmp目錄下,如果tmp目錄存在同名文件,則覆蓋。

$ ./tool.sh  -getobjects 123 -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的值,將桶123內所有對象同步到本地tmp文件夾中,上例上有兩個文件下載失敗了,可以查看日誌,其原因是因為有個文件名a,a/b保存在本地目錄下時會創建a文件夾,與文件a衝突導致。

重命名對象

命令格式:command -moveobject <srcbuc> <srckey> <desbuc> <deskey>

當前srcbuc和desbuc必須一致,該命令將srcbuc桶內的srckey對象重命名為deskey

舉例:

$ ./tool.sh -moveobject 123 nosa.txt 123 nosb.txt
Task Success!

將桶 123 的 nosa.txt 文件重命名為 noab.txt

複製對象

命令格式:command -copyobject <srcbucket> <srckey> <descbucket> <desckey>

舉例:
$ ./tool.sh -copyobject  123 nosb.txt 123 nosa.txt
Task Success!

將桶123的nosb.txt文件複製到桶123的nosa.txt文件

刪除文件

命令格式:command -deleteobject <bucket> <key>

舉例:

$ ./tool.sh -deleteobject 123 nosb.txt
Task Success!

刪除桶123中的nosb.txt對象

最後更新:2017-01-03 10:48:52

  上一篇:go 默認Dockerfile
  下一篇:go 項目示例