我正在开发一个将在AWS(具有自动缩放功能的Ec2实例)上的弹性环境中运行的应用程序。所有的应用程序都是用PHP开发的。
该应用程序的核心是基于将文件安全存储在S3存储桶中。由于用户不需要知道该文件保存在哪里,因此我认为可以将该文件临时存储在EC2实例中,然后使用作业队列(Amazon SQS)异步将其移动到S3,以避免重复等待。时间并为s3问题提供更好的支持(虽然不常见,但可能会发生)。
我的问题是:
理想情况下,您不希望在文件上传期间将主应用程序服务器捆绑在一起(既捆绑到应用程序服务器,又捆绑到S3)。
存在CORS(跨源资源共享)可以避免这种情况。您可以直接从客户端将文件上传到S3,让Amazon担心处理并发用户的多次上传。它可以让您的应用尽其所能,而不必担心上传本身。
这个SO问题讨论了相同的问题,并且有几个可自定义的插件,例如精美的上传器,可以用进度条等将其包装起来。
这完全消除了使用任何种类的队列的需要。如果您需要在上传后进行某些簿记操作,则只需在上传完成后通过文件信息等对服务器进行ajax调用。它还可以解决由于自动缩放而删除实例时可能遇到的任何问题因为一切都是客户端。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句