Seb N
Seb N

Reputation: 41

Rename files in Amazon S3

I would like to rename all files in my Amazon S3 bucket with extension.PDF to .pdf (lowercase).

Did someone already have to do this? There are a lot of files (around 1500). Is S3cmd the best way to do this? How would you do?

Upvotes: 0

Views: 1049

Answers (1)

Krishnadas PC
Krishnadas PC

Reputation: 6539

  s3cmd --recursive ls s3://bucketname |
        awk '{ print $4 }' | grep "*.pdf"  | while read -r line ; do

s3cmd --recursive mv s3://<s3_bucketname>/$line/ s3://<s3_bucketname>/${line%.*}".PDF"

done

A local linux/unix example for renaming all files with .pdf extension to .PDF extension.

mkdir pdf-test
cd pdf-test
touch a{1..10}.pdf

Before

 ls
    a1.pdf  a2.pdf  a4.pdf  a6.pdf  a8.pdf  grep.sh
    a10.pdf a3.pdf  a5.pdf  a7.pdf  a9.pdf

The script file grep.sh

#/bin/bash
ls |grep .pdf | while read -r line ; do # here use ls from s3
    echo "Processing $line"
    # your s3 code goes here
    mv $line ${line%.*}".PDF"
done

Add permissions and try

 chmod u+x grep.sh

./grep.sh

After

ls
a1.PDF  a2.PDF  a4.PDF  a6.PDF  a8.PDF  grep.sh
a10.PDF a3.PDF  a5.PDF  a7.PDF  a9.PDF

You can apply the same logic. instead of mv use s3 mv.

Upvotes: 1

Related Questions