如何重命名文件并从一个 s3 存储桶移动到另一个存储桶

时间:2021-08-01 18:35:29

标签: bash amazon-web-services amazon-s3 aws-cli

我正在使用此命令,但无法重命名文件并将文件从一个 s3 文件夹移动到另一个文件夹

我想重命名这个文件并移动

这里 anagaza.csv000 是我想重命名的文件并将其移动到名为 angaza.csv 的movedData 文件夹

一旦我移动文件,我还想要一个更通用的方法,而不是像 anagaza.csv000 这样的文件名,我可以使用像 anaga*.* 或“wildcard.csv*”这样的通配符,但我的目的地应该有名称我选择给哪个是angaza.csv

aws s3 --recursive mv 
s3://mygluecrawlerbucket/angaza_accounts/to_be_processed/anagaza.csv000   
s3://mygluecrawlerbucket/angaza_accounts/movedData/angaza.csv --profile default

1 个答案:

答案 0 :(得分:0)

您可以使用 shell 脚本(mvrename)生成新的对象名称,然后在 S3 中使用 s3 mv 一一重命名。 要重命名对象的名称,您需要自己编写正则表达式或一些东西。对于使用正则表达式重命名,this SO 会有所帮助。

这是我使用的 sample.sh。

list_objects=$(aws s3 ls s3://oldbucket | awk '{print $4}')

for old_object_name in $list_objects; do
    new_object_name=$(...) # mv or rename
    aws s3 mv s3://oldbucket/$old_object_name s3://newbucket/$new_object_name
done