對象存儲5個好用S3客戶端,推薦給你

有5個非常簡單好用 S3 客戶端工具,可以方便接入對象存儲,讓你昂你領成本的上手對象存儲,還能夠抓一抓 S3 協議的包。

s3curl

s3curl 是命令行工具,開源免費使用,非常輕量,也是我平時用的最多的一個工具。s3curl 是 perl 寫的邏輯腳本, 本質上,就是幫你構造一個合法的 S3 請求,通過 curl 工具發出去。所以你能做到非常基礎的行爲,瞭解到 S3 請求的本質。

安裝

在ubuntu系統上,你直接安裝即可:

apt-get install s3curl

安裝好之後,需要配置兩個東西:你 S3 的 endpoint(旁白:你發給誰,默認是發給AWS的),你賬號的 ak/sk。

配置

1. endpoint在那裏配置?

修改 s3curl 這個腳本內容,添加你自己的 endpoint :

在這裏插入圖片描述
s3curl 在那裏?which s3curl 看下唄。我這裏隨便填了兩個地址,因爲我在自己本地搭建了一個 S3 對象存儲服務後端,所以這裏填寫了 127.0.0.1 ,注意,這裏不需要寫上端口。

2. ak/sk在那裏配置?

cat ~/.s3curl 
%awsSecretAccessKeys = (
    # 你的賬號配置;名字可以隨便起,待會是要用的; 
    mock => {
        id => '{你的ak}',
        key => '{你的sk}',
    }
);

列舉對象:

 s3curl --id=mock  -- http://127.0.0.1:20000/qiya-bucket-1

舉例:

hostname$ s3curl --id=mock  -- http://127.0.0.1:20000/qiya-bucket-1 -v|xmllint -format -
*   Trying 127.0.0.1...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to 127.0.0.1 (127.0.0.1) port 20000 (#0)
> GET /qiya-bucket-1 HTTP/1.1
> Host: 127.0.0.1:20000
> User-Agent: curl/7.47.0
> Accept: */*
> Date: Sat, 11 Apr 2020 15:22:07 +0000
> Authorization: AWS {你的AK}:{V2簽名}
> 
< HTTP/1.1 200 OK
< Vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
< x-amz-request-id: VngAAFaVJyUlzQQW
< Date: Sat, 11 Apr 2020 15:22:08 GMT
< Content-Length: 496
< Content-Type: text/plain; charset=utf-8
< 
{ [496 bytes data]
100   496  100   496    0     0   1157      0 --:--:-- --:--:-- --:--:--  1158
* Connection #0 to host 127.0.0.1 left intact
<?xml version="1.0"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>qiya-bucket-1</Name>
  <Delimiter/>
  <Prefix/>
  <Marker/>
  <MaxKeys>1000</MaxKeys>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>code.data</Key>
    <ETag>"81c6873073ddf75c5766a60a75b002de"</ETag>
    <Size>13811</Size>
    <LastModified>2020-04-10T10:47:31.000Z</LastModified>
    <StorageClass>STANDARD</StorageClass>
    <Owner>
      <ID>260637563</ID>
      <DisplayName>260637563</DisplayName>
    </Owner>
  </Contents>
</ListBucketResult>

你看這個S3協議包都打印出來了,並且你可以配合 fiddler 等工具抓包,甚至改包頭等操作,調試S3協議。

s3cmd

s3cmd 也是一個 S3 客戶端工具,命令行式,python 語言開發的,使用起來比 s3cmd 自然絲滑一些,於人的交互性更自然。

安裝

apt-get install s3cmd

配置

調用 s3cmd --configure 進行配置,配置完成之後會在主目錄生成一個 .s3cfg 文件,你 cat ~/.s3cfg 就能看到了。

s3cmd --configure

其中最關鍵的幾個配置:

access_key = 你的 ak
secret_key = 你的 sk
host_base = localhost:20000         // 你的 S3 服務器 endpoint
host_bucket = localhost:20000/%(bucket)  // path 模式

其他的自行斟酌配置,配置項還挺多的,s3cmd 的功能還挺多。

s3cmd ls  # 列舉所有的桶

輸出例子:

hostname$ s3cmd ls 
2020-04-10 10:47  s3://qiya-bucket-1

CloudBerry

免費的開源工具,這個是可視化的,比較容易入門,更人性化一些,同樣的,還是兩件事:

  1. 配置好 endpoint
  2. 配置好 ak/sk

配置好賬號:
在這裏插入圖片描述

就能顯示所有的 bucket

這個操作就簡單了,可視化操作,雙擊能打開目錄,兩邊拖放就能傳輸文件,下載文件之類的。並且這個還能指定同步目錄,把本地的某個目錄自動同步到某個 bucket 。

工具鏈接:http://www.cloudberrylab.com/

s3 brower

這個也是可以免費使用的 s3 客戶端工具,非常方便能夠通過 s3 協議接入對象存儲後端。

配置

在這裏插入圖片描述
這就非常方便的能夠通過這個工具進行對象存儲的測試,比如你可以捕獲這個 s3 請求,研究或者修改包:

在這裏插入圖片描述
這種可視化工具,非常方便讓你拖放的上傳下載文件,並且該工具會自動幫你做分片上傳等操作,這個是好處,也是不方便的地方。這也是我更喜歡使用 s3curl 的原因;

工具鏈接:http://s3browser.com/

s3fs

本質這個不算一個客戶端工具,而是針對s3協議封裝的文件網關,本質上是一個 c/c++ 實現的 fuse 項目,對外提供 posix 文件系統,後接的通過 s3 協議連接的對象存儲,s3fs 只是做了一個協議轉換。

安裝

apt-get install s3fs-fuse

配置

創建 ak/sk 配置

echo AK:SK > ~/.passwd-s3fs

掛載到操作系統:

s3fs qiya-bucket-1 /data/s3fs -o passwd_file=/root/.passwd-s3fs -o url=http://s3.example.xxx.com -o use_path_request_style

代碼鏈接地址:https://github.com/s3fs-fuse/s3fs-fuse


關注我,獲取更多幹貨
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章