繁体   English   中英

从S3下载所有文件并将它们上传到同一文件夹中

[英]download all files from S3 and upload them in same folder

每当创建新存储桶时,我都会在存储桶上启用版本控制。 但是为了向后兼容(已创建的存储桶),我正在下载所有文件/密钥并再次上传。 我正在这样做:

fullObject = s3Client.getObject(new GetObjectRequest(bucketName, key));

但是我无法在上传时弄清楚如何在其特定文件夹中上传文件。 还是有另一种解决向后兼容性的解决方案。

S3确实没有文件夹,它使用逻辑来“伪造”它,以寻找以“ /”分隔的通用前缀。 “密钥”是存储桶中文件的完整路径名。

听起来您正在执行获取操作,然后想要将相同的字节放入存储桶中的相同密钥。 如果这是您要执行的操作,则只需使用与获取对象相同的键即可。

在启用了版本控制的存储桶中,这将导致文件的两个副本。 目前尚不清楚您为什么要这么做(假设您正写回所读内容)。 您会不会最终要为同一文件的两个副本付费?

我的理解是,如果您为其中已经有文件的存储桶打开版本控制,那么一切都会以您期望的方式运行。 如果先前存在的文件被删除,它只会添加一个删除标记。 如果先前存在的文件被覆盖,它将保留先前版本(作为新文件的先前版本)。 启用版本控制时,无需主动重写现有文件。 如果您有兴趣,可以通过S3控制台,命令行界面或特定于语言的API之一轻松进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM