AWS s3はバケットのフォルダ名のみを一覧表示します。

AWS s3はバケットのフォルダ名のみを一覧表示します。

日付プレフィックスを含むフォルダを含むs3バケットがあります。たとえば -

bucket_name
    --> 2021-11-01
    --> 2021-11-02
    --> 2021-11-03
    --> 2021-11-04
           ...
           ...
    --> 2021-11-10

私の考えは、フォルダ全体が7日後に含まれているオブジェクトをクリーンアップする必要があるということです。だから私はただ見つけなければなりません。このバケット内のフォルダ名日付を確認して内容を削除してください。

完全なコード:

aws s3 ls s3://$S3_PATH/ | while read -r line;  do
    # Get file creation date
    createDate=`echo $line|awk {'print $1" "$2'}`
    createDate=`date -d"$createDate" +%s`

     if [[ $createDate -lt $DELETETION_TIMESTAMP ]]
     then
         # Get file name
         FILENAME=`echo $line|awk {'print $4'}`
         if [[ $FILENAME != "" ]]
           then
             echo "   -> Deleting $FILENAME"
             aws s3 rm --recursive s3://S3_PATH/$createDate/
         fi
     fi
done;

間違い:もし私がするならecho $createDate

日付:無効な日付 'PRE 2021-11-01/'

編集する:

echo $line

返品

PRE 2021-11-01/
2021-11-01 15:10:15 0

関連情報