Linux

AWS 命令列界面 CLI S3 串流上傳、下載、壓縮教學與範例

介紹如何在 Linux 系統中使用 aws 指令搭配 Linux 管線處理串流的上傳、下載與壓縮。

串流上傳

aws 指令可以透過減號(-)來從標準輸入中讀取資料,例如:

# 以串流上傳檔案
cat data.txt | aws s3 cp - s3://MyBucket/data.txt

這樣就可以將串流資料直接上傳至 S3 儲存。

最常見的應用就是將資料壓縮之後在以串流上傳至 S3:

# 壓縮後以串流上傳
tar zcf - MyFolder | aws s3 cp - s3://MyBucket/MyFolder.tar.gz

串流下載

aws 在下載時亦可透過減號(-)將輸出導入標準輸出:

# 以串流下載檔案
aws s3 cp s3://MyBucket/data.txt - | cat > data.txt

若要將壓縮檔案下載之後,直接以串流的方式解壓縮,就可以這樣寫:

# 以串流下載檔案並解壓縮
aws s3 cp s3://MyBucket/MyFolder.tar.gz - | tar zxf -

在使用 aws 指令處理串流的上傳或下載時,如果資料的大小在 50GB 以上,就必須要加上 --expected-size 參數來明確指定串流資料的大小(單位是 bytes),否則就會因為資料量太大而出現錯誤,例如:

# 以串流下載大型檔案
aws s3 cp s3://MyBucket/large.data - --expected-size 53687091200 | cat > large.data

參考資料:StackOverflowStackOverflowAWS CLI Command Reference

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago