最後更新日期:2024 年 10 月 13 日

安裝 AWS CLI

在 bash 下執行

<span class="line"><span style="color: #88C0D0">curl</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip</span><span style="color: #ECEFF4">"</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-o</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">awscliv2.zip</span><span style="color: #ECEFF4">"</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">unzip</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">awscliv2.zip</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">./aws/install</span></span>

測試是否能正常執行

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">--version</span></span>

設定權限資料

在設定前,要在 AWS 管理頁面上建好 IAM 帳號,並指定給他適當的 S3 存取權限。

產生存取的秘鑰,並準備好以下資料,長得大概像這樣子,這些值是參考用的,請依自己的設定為主

<span class="line"><span style="color: #D8DEE9">AWS_ACCESS_KEY_ID</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">AKIXXXXXYYYYYZZZZZIK</span></span>
<span class="line"><span style="color: #D8DEE9">AWS_SECRET_ACCESS_KEY</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">xp2M8wBct8EXjhsMIuVZ785ygj9fqGRBfrW5gk9C</span></span>
<span class="line"><span style="color: #D8DEE9">AWS_DEFAULT_REGION</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">ap-northeast-1</span></span>
<span class="line"><span style="color: #D8DEE9">AWS_BUCKET</span><span style="color: #81A1C1">=</span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">my-first-test-bucket</span><span style="color: #ECEFF4">"</span></span>

然後執行設定程式

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">configure</span></span>

執行後,回管相對應的問題,他會在 ~/.aws 下,幫我們建立好相關的設定檔

建立儲存貯體 (Bucket)

建立一個名為 my-first-test-bucket 的貯體

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mb</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">my-first-test-bucket</span></span>

複製 /上傳檔案 (cp)

可用來將「檔案」複製到遠端 s3,也可以在 s3 間複製檔案

假設我們在家目錄下有個 logo.png 檔案想要上傳到 s3

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">cp</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">logo.png</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">cp</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/logo.png</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/new-logo.png</span></span>

同步檔案 (sync)

可用來將「檔案」或「目錄」跟遠端 s3 同步。

同步的意思是,如果有檔案有變更,就會上傳;反之,則略過不上傳。

上傳同步

假設我們在家目錄下有個 images 目錄想要上傳到 s3,並保留 images 目錄。

記得要在目標端的 s3 bucket 指定 images 目錄,否則會把 images 下的所有檔案複製到 s3 的根目錄。

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">sync</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">images</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/images</span></span>

下載同步

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">sync</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/images</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">images</span></span>

設定 ACL

如果你有到 AWS 管理網頁設定 Bucket 的 ACL, 你可以在同步時用 --acl 指定 ACL 權限

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">sync</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">--acl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">public-read</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">images</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/images</span></span>

查看檔案/目錄

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ls</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket</span></span>

移動 / 重新命名檔案

僅可處理檔案,無法處理目錄

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mv</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/logo.png</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/old-logo.png</span></span>

刪除檔案或目錄

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">rm</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/old-logo.png</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">rm</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-first-test-bucket/images</span></span>

刪除儲存貯體 (Bucket)

Bucket 必須要是空的,才可以刪除

<span class="line"><span style="color: #88C0D0">aws</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">rb</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">s3://my-frist-test-bucket</span></span>

參考資料

官方的 AWS CLI 安裝指引

Access control list (ACL) overview

aws s3 sync 指令說明

Last modified: 2024-10-13

Author

Comments

Write a Reply or Comment

Your email address will not be published.