【问题标题】:how to rename a file and move from one s3 bucket to another如何重命名文件并从一个 s3 存储桶移动到另一个
【发布时间】:2021-10-07 07:38:39
【问题描述】:

我正在使用此命令,但无法重命名文件并将其从一个 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

【问题讨论】:

  • 重命名/移动对象时要使用的确切逻辑是什么?也就是说,它如何从anagaza.csv000 变为angaza.csv?是否永远只是从末尾删除000 的问题,还是会有不同的命名格式?还有,为什么要加入--recursive

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


【解决方案1】:

您可以使用 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

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多