Retrofit + AWS S3-上载URL的预签名URL,我应该对PUT请求使用循环吗?

肮脏的戴维

我有一个用户使用的AWS Lambda函数,GET request它返回预签名的URL。然后,用户通过向该URL发出PUT请求来上传图像。由于AWS S3PUT 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后期处理Lambda函数中,我想将该S3图像URL保存到数据库中,所以如果网络出现故障,如何确保所有图像都被上传,而不是仅上传3/5?

阿伦·K

你是对的。预先生成的url专门用于上传单个文件。

如果要在所有文件已上传或没有文件上传的情况下实现这种原子行为,则需要自行实现这种逻辑。

例如,将所有文件上载到其他S3位置。然后,一旦上传了所有文件,您应该具有将文件移动到实际位置的服务或功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章