You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

S3桶文件复制重命名失败求助:需保留原文件

S3文件复制重命名问题解决办法

问题原因

你用的aws s3 --recursive cp <bucket>/*.txt <bucket>/*.aaa.txt命令无效,因为S3的cp命令不支持这种批量通配符替换命名的写法。另外明确说:完全可以保留原文件生成新副本,不是只能用mv命令(mv是移动重命名,会删除原文件)。

正确实现方法

1. Linux/macOS终端用循环处理

先列出桶内的txt文件,逐个复制并重命名:

# 替换your-bucket为你的实际桶名
aws s3 ls s3://your-bucket/ --recursive | grep "\.txt$" | while read -r line; do
  filename=$(echo "$line" | awk '{print $4}')
  if [[ "$filename" == *.txt ]]; then
    new_filename="${filename%.txt}.aaa.txt"
    aws s3 cp "s3://your-bucket/$filename" "s3://your-bucket/$new_filename"
  fi
done

2. Windows用PowerShell处理

需要先安装AWS Tools for PowerShell,然后执行:

# 替换your-bucket为你的实际桶名
Get-S3Object -BucketName your-bucket | Where-Object { $_.Key -like "*.txt" } | ForEach-Object {
  $newKey = $_.Key -replace '\.txt$', '.aaa.txt'
  Copy-S3Object -BucketName your-bucket -Key $_.Key -DestinationBucket your-bucket -DestinationKey $newKey
}

关键提醒

  • 别用aws s3 mv命令,这个是移动操作,执行后原文件会被删除,不符合你保留原文件的需求。
  • 如果桶内文件数量极大,循环效率偏低,可考虑用AWS Lambda批量处理,少量文件用上面的方法足够。

内容的提问来源于stack exchange,提问作者justaguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 11:15:59