从S3下载所有文件并以相同的方式上传

2024-04-20 07:10:54 发布

您现在位置:Python中文网/ 问答频道 /正文

每当创建一个新的bucket时,我就启用了bucket的版本控制。但是为了向后兼容(已经创建了bucket),我下载了所有文件/密钥并再次上传。我是这样做的:

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

但我不知道如何上传文件时上传到他们的特定文件夹。或者有其他解决方案来修复向后兼容性


Tags: 文件key文件夹newbucket密钥解决方案版本控制
1条回答
网友
1楼 · 发布于 2024-04-20 07:10:54

S3并没有真正的文件夹,它用逻辑来“伪造”它,寻找用“/”分隔的通用前缀。“key”是bucket中文件的完整路径名

听起来像是在做一个get,然后想把相同的字节放到bucket中的同一个key中。如果这就是你想做的,那么就使用你用来获取对象的同一个键

在已启用版本控制的bucket中,这将导致文件的两个副本。不清楚你为什么要这么做(假设你写的正是你正在读的东西)。你不是要为同一份文件的两份副本付钱吗

我的理解是,如果对已经包含文件的bucket启用版本控制,那么一切都会按照您期望的方式工作。如果先前存在的文件被删除,它只会添加一个删除标记。如果先前存在的文件被覆盖,它将保留以前的版本(作为新文件的以前版本)。打开版本控制时,不需要主动重写现有文件。如果您关心这个问题,您可以通过S3控制台、命令行界面或某个特定于语言的api轻松地测试它

相关问题 更多 >