我有两个服务,一个以异步方式上传到S3,第二个服务是后处理器,对上传的文件进行一些额外处理。
我遇到的问题是在第二个服务中请求文件过快时,S3客户端认为文件存在是因为密钥存在,但整个文件尚未上传,所以异常扔了。
如果我执行阻止上传,它会起作用,但性能非常差。
有没有办法检查S3的文件是否已完全上传?
答案 0 :(得分:0)
使用temp作为密钥名称的前缀,然后在完成上传后将其重命名为原始文件名,以便下一个服务检查原始文件名,并在原始文件存在时执行操作。
答案 1 :(得分:0)
如果您使用AWS S3控制台在存储桶上启用S3事件,则会发送文件创建完成事件,以告知您上载完成的时间。这些事件可能会发布到SNS,SQS或AWS Lamba。