我有一个AWS Lambda函数,用户向该函数发送GET request
,它会返回预签名的URL。然后,用户通过向该URL发出PUT请求来上传图像。由于亚马逊网络服务S3 PUT requests
将对象上传限制为每个URL仅一个,
如何发送多张图片?我是否应该在当前图像数量上使用循环,例如:
假设用户想要上传5张图片。
for(...5 images...){
Make GET request to generate URL
In the callback method,
Make a PUT request to the generated URL to upload image
}
我不确定这项服务是否应该这样使用。这也导致了另一个问题,比如如果我想要所有的图像都上传并保存到我的数据库中,或者没有保存。因为在PUT request's
post处理Lambda函数中,我希望将该S3图像URL保存到我的数据库中,所以如果网络故障,我如何确保上传所有图像,而不是只上传其中的3/5?
发布于 2020-01-11 13:02:37
你是正确的。预先签名的url被专门生成以上载单个文件。
如果你想实现这样的原子行为,所有的文件都上传了,或者没有上传,你将需要自己实现这样的逻辑。
例如,将所有文件上载到不同的S3位置。然后,您应该有一个服务或功能来移动文件到实际位置,一旦所有的文件都上传了。
https://stackoverflow.com/questions/59691516
复制相似问题