pythonbot3如何在进程开始复制到另一个bu之前检查s3文件是否已完全写入

2024-07-03 06:46:12 发布

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

在进程B开始使用boto3将文件复制到aws3bucket B之前,如何确保进程A已经在aws3bucket A中完全写入了大文件(5+GB)?在


Tags: 文件进程boto3gbaws3bucket
3条回答

您一定应该使用s3事件通知作为lambda函数的触发器,该函数将文件从Bucket a复制到Bucket B。该触发器确保在文件完全上载后开始复制。在

此外,如果您需要执行进一步的操作,您可以使用AWS step函数来定义流程的工作流,例如流程B将在流程A的2秒后启动,流程C和D将在流程B结束执行后并行执行,等等

如果在amazons3中创建了一个新对象,那么它只会在上传完成后出现。在is完成上载之前,其他进程将无法查看它。在

对象不能在S3中更新。而是用新对象替换它们。因此,如果一个对象正在被更新,它在其他进程中仍将显示为旧对象。在

最好的方法是通过Configuring Amazon S3 Event Notifications触发进程B。上传新对象后,S3可以触发Lambda函数(或发送通知),然后执行第二步。在

我也可以上传到40GB。在

由于我要进行多部分上载,所以我会检查要写入的文件是否是closed。S3文件(对象)仅在所有操作完成时关闭。在

另一种方法是使用类似芹菜的异步任务队列。任务完成后,您将收到通知。在

我现在使用Golang,但这两种方法对我都很有效。在

相关问题 更多 >