0

我需要重命名 s3 存储桶中的文件,并且想知道是否有办法通过以某种方式查询 SQL 脚本来重命名文件,以便它可以返回信息并使用它来更新文件的名称。

for example a file in s3 
00123456789.word

//Some SQL Script
select u.name, a.address from users u
left join address a
on u.id = a.id
where u.id = 00123456789

-- returns George Washington / 111 abc street

Then somehow use this data returned from running the SQL script to rename the file

george_washington_111_abc_street.word

我很可能需要使用 CLI,因为有很多文件并且手动重命名它们似乎不合理。

这是可能的还是有其他方法?

编辑:有没有办法以编程方式做到这一点?

4

1 回答 1

1

您需要以某种方式对此活动进行编程或编写脚本。

我会这样做的方式是:

  • 运行 SQL 查询以返回所有行的三列(id、name、address)
  • 将结果数据加载到Excel 电子表格中
  • 添加一列,使“重命名”命令,如:
aws s3 mv s3://bucketname/00123456789.word s3://bucketname/george_washington_111_abc_street.word

您可以使用 Excel 公式将名称和地址转换为小写,并将空格替换为下划线。

然后,使用Copy Down为每一行创建aws s3 mv命令。然后,您可以将这些命令复制到文本文件中并从命令行运行该文件。它将单独重命名每个对象。

如果您有大量对象(例如数万个),这可能不起作用。在这种情况下,您可能需要以编程方式进行。

于 2022-01-06T09:41:34.180 回答