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

관련 정보