我决定将Amazon S3用于我正在创建的应用的文档存储。我遇到的一个问题是当我需要将文件上传到S3时,我需要在我的应用程序中创建一个文档对象,以便我的用户可以执行CRUD操作。
一种解决方案是允许双重上传。用户将文档上载到我的Rails应用程序所在的服务器上。我验证并创建对象,然后将其传递给S3。这方面的一个问题是进度指标变得更加复杂。使用大多数开箱即用的插件会向客户端显示文件已完成上传,因为它在我的服务器上,但是当文件从我的服务器转到S3时会有一个不错的延迟。这也引入了不必要的带宽(至少看起来没有必要)
我正在考虑的另一个解决方案是使用一个AJAX请求将文件直接上传到S3,当成功时,再发出第二个AJAX请求以将对象存储在我的数据库中。这里的一个问题是我必须在上传后验证文件,这意味着如果验证失败,我必须在S3中运行一些清理代码。
两者似乎同样凌乱。
有没有人有更优雅的工作,他们不介意分享?我认为这是一种常见的情况,“云存储”在今天非常流行。也许我在看这个错误。
答案 0 :(得分:2)
除非有特殊原因不使用回形针,否则我强烈推荐它。与延迟作业和延迟回形针一起使用时,用户将文件上载到您执行所需验证的服务器文件系统。延迟的作业然后处理并将其存储在s3上。真的,非常容易设置和更好的用户体验。