使用 s3cmd 操作 amazon S3

2021-06-21 04:49:33 字數 3199 閱讀 8190

wget 

tar-zxf s3cmd-1.0.1.tar.gz -c

/usr/local/

mv/usr/local/s3cmd-1.0.1/

/usr/local/s3cmd/

ln-s

/usr/local/s3cmd/s3cmd /usr/bin/s3cmd

1、配置,主要是 access key id 和 secret access key

1
s3cmd --configure

2、列舉所有 buckets。(bucket 相當於根資料夾)

1
s3cmd ls

3、建立 bucket,且 bucket 名稱是唯一的,不能重複。

1
s3cmd mb s3://my-bucket-name

4、刪除空 bucket

1
s3cmd rb s3://my-bucket-name

5、列舉 bucket 中的內容

1
s3cmd ls s3://my-bucket-name

6、上傳 file.txt 到某個 bucket,

1
s3cmd put file.txt s3://my-bucket-name/file.txt

7、上傳並將許可權設定為所有人可讀

1
s3cmd put --acl-public file.txt s3://my-bucket-name/file.txt

8、批量上傳檔案

1
s3cmd put ./* s3://my-bucket-name/

1
s3cmd get s3://my-bucket-name/file.txt file.txt

1
s3cmd get s3://my-bucket-name/* ./

11、刪除檔案

1
s3cmd del s3://my-bucket-name/file.txt

12、來獲得對應的bucket所占用的空間大小

1
s3cmd du

-h s3://my-bucket-name

以下命令都能將dir1 中的檔案上傳至my-bucket-name,但效果只截然不同的。

1)dir1 不帶"/"斜槓,那麼dir1會作為檔案路徑的一部分,相當於上傳整個dir1目錄,即類似 "cp -r dir1/"

1

2

~/demo$ s3cmd put -r dir1 s3://my-bucket-name/

dir1/file1-1.txt -> s3://my-bucket-name/dir1/file1-1.txt [

1 of 1

]

2)帶"/"斜槓的 dir1,相當於上傳dir1目錄下的所有檔案,即類似 "cp ./* "

1

2

~/demo$ s3cmd put -r dir1/ s3://my-bucket-name/

dir1/file1-1.txt -> s3://my-bucket-name/file1-1.txt [

1 of 1

]

這是s3cmd 使用難點,但卻是最實用的功能。官方使用說明見《s3cmd sync howto》

首先明確,同步操作是要進行md5校驗的,只有當檔案不同時,才會被傳輸。

4.1、常規同步操作

1、同步當前目錄下所有檔案

1
s3cmd sync  ./  s3://my-bucket-name/

2、加 "--dry-run"引數後,僅列出需要同步的專案,不實際進行同步。

1
s3cmd sync

--dry-run ./ s3://my-bucket-name/

3、加 " --delete-removed"引數後,會刪除本地不存在的檔案。

1
s3cmd sync

--delete-removed ./ s3://my-bucket-name/

4、加 " --skip-existing"引數後,不進行md5校驗,直接跳過本地已存在的檔案。

1
s3cmd sync

--skip-existing ./ s3://my-bucket-name/

4.2、高階同步操作

4.2.1、排除、包含規則(--exclude 、--include)

file1-1.txt被排除,file2-2.txt同樣是txt格式卻能被包含。

1

23

~/demo$ s3cmd sync

--dry-run

--exclude

'*.txt'

--include

'dir2/*' ./ s3://my-bucket-name/

exclude: dir1/file1-1.txt

upload: ./dir2/file2-2.txt -> s3://my-bucket-name/dir2/file2-2.txt

4.2.2、從檔案中載入排除或包含規則。(--exclude-from、--include-from)

1
s3cmd sync

--exclude-from pictures.exclude ./ s3://my-bucket-name/

pictures.exclude 檔案內容

4.2.3、排除或包含規則支援正規表示式

1
--rexclude 、--rinclude、--rexclude-from、--rinclude-from

s3cmd用法總結

s3是亞馬遜aws提供的簡單儲存服務 可以理解為有公網網域名稱的大容量高可用儲存 s3配合cloudfront服務可作為cdn使用,它提供多節點全球發布 方法一 yum install s3cmd方法二 yum install y python pip python version2.6 pip i...

使用s3cmd訪問ceph的物件儲存服務

測試環境 ubuntu 1.搭建ceph 物件儲存服務 參考 2.安裝s3cmd 客戶機執行 sudo apt install s3cmd 3.配置s3cmd 客戶機執行 s3cmd configure,開始配置 注意 藍色是敏感資訊,劃掉了,請填你自己的 紅色是需要注意填寫的選項,其他預設即可 圖...

s3cmd與阿里雲OSS對接

專案中剛好用到了s3cmd和阿里雲oss對接。使用方法如下 1.安裝s3cmd pip install s3cmd 2.配置s3cmd s3cmd configure 我的配置如下 如果許可權異常s3cmd會報錯。這裡其實和日期沒任何關係。這裡就是許可權問題,提示資訊不錯。和日期沒有任何關係 err...