我的用例如下.我想使用Java S3 SDK将文件从某个s3Location移动到不同的s3Location.例如,如果文件在bucket/current,我想将其移动到bucket/old.
我目前可以下载一个文件作为S3Object,将该对象转换为文件(java.io,因为S3 Java客户端因为我不明白的原因不允许你上传一个S3Object,你下载的对象非常相同!)并上传该文件.我很好奇是否有更好的方法.
谢谢!
在S3中没有直接实现重命名或移动操作.相反,典型的解决方案是将对象复制到新位置,然后删除原始对象.您可以使用AWS SDK for Java的方法AmazonS3#copyObject和AmazonS3#deleteObject方法来完成此任务.
这比您在本地下载文件然后在新密钥下重新上传的问题中描述的技术更有效. copyObject内部使用S3 REST API PUT对象 - 复制操作中提供的S3服务器端副本.该副本在S3服务器端执行,因此与本地文件下载/上载相比,您无需支付I/O成本(以及从AWS服务器转出时的实际成本).
请注意,这与典型本地文件系统中提供的重命名操作有很大不同,原因有多种:
| 归档时间: |
|
| 查看次数: |
4906 次 |
| 最近记录: |