AWS JAVA SDK:将文件从一个前缀转移移动到另一前缀

问题描述

我需要在Java中将AWS S3中的文件从前缀移动到其他前缀。 例如 : 我的位置有3个文件

  aws s3 ls s3://{sourcebucket}/abc/xyz/csv/
  file1
  file2
  file3

现在我想将这些文件移动到s3:// {sourcebucket} / abc / xyz / archive /,即

aws s3 ls s3://{sourcebucket}/abc/xyz/archive/
  file1
  file2
  file3

所以简单来说,我想使用Java代码来实现:

aws s3 mv s3:// {sourcebucket} / abc / xyz / csv / s3:// {sourcebucket} / abc / xyz / archive / --recursive

我尝试使用此代码先复制文件,然后从源位置删除文件

ObjectListing list = s3.listObjects(from_bucket,src_key); 
              for (S3ObjectSummary objectSummary : list.getobjectSummaries()) {
                  
                  s3.copyObject(from_bucket,objectSummary.getKey(),to_bucket,dest_key); 
              }

但是会更改目标位置的文件名。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)