簡體   English   中英

使用AWSCLI在多個S3存儲桶上啟用版本控制

[英]Enabling versioning on multiple S3 buckets using AWSCLI

我正在嘗試通過awscli啟用版本控制; 理想情況下,我將使用以下內容:

aws s3 put-bucket-versioning --bucket <bucketname> --versioning-configuration status=Enabled

但是,我們有數百個水桶。 有沒有辦法修改此命令以在所有現有存儲桶上啟用它? 提前致謝。

對於快速的一線客,您可以嘗試:

for bucket in $(aws s3api list-buckets --query 'Buckets[?contains(Name, `prod`) == `true`]' --output text); do aws s3 put-bucket-versioning --bucket $bucket --versioning-configuration status=Enabled ; done

這使用JMESPath查詢過濾器僅挑選您需要的存儲桶。

您可以嘗試這樣的事情:

aws s3 ls | cut -d' ' -f3 | xargs -L 1 aws s3 put-bucket-versioning --versioning-configuration status=Enabled --bucket

第一部分僅列出了所有S3存儲桶,然后將該列表通過管道傳遞到cut ,從而cut了日期和時間列表,僅保留存儲桶名稱。 然后將該存儲桶名稱列表通過管道傳遞給xargs -L 1以針對每個存儲桶名稱一次執行隨后的aws命令。

要添加其他過濾,例如僅列出以proddev結尾的存儲桶,請在xargs之前添加一個附加的pipe命令:

aws s3 ls | cut -d' ' -f3 | grep -E "(prod|dev)$" | xargs ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM