[英]How to post images directly to s3 on a heroku app from a json request?
我有一个在heroku上托管的rails应用程序和一个用rhodes制作的移动应用程序。
我想使用HTTP POST请求将图像从移动应用程序发送到我的rails应用程序。 由于heroku不允许你存储文件,我使用的是amazon s3。
我无法将文件从heroku发送到s3,因为它需要超过30秒并导致超时。 我已经看到很多用户在拥有表单时直接将文件上传到s3的示例,但在这种情况下显然不起作用。
我试着在这里使用这个建议:
rails 3,heroku,aws-s3,只是尝试将文件上传到已发布的(http / multipart)的S3到我们的应用程序
但我仍然得到503请求超时。
我不想把我的亚马逊s3键放在应用程序上。
现在,我觉得我唯一的选择是在EC2上托管我的应用程序,我宁愿不做,因为我喜欢Heroku的简单性。
而且,无论如何,这些上传都需要很长时间,这似乎很奇怪。 我只发布手机摄像头的图像,所以它们不是大文件。
我在工作中的项目中遇到了同样的错误。 有人说,解决这个问题的唯一方法是将文件直接上传到S3存储桶。 这在我们的案例中很难,因为我们使用Paperclip Gem for Rails和不同大小的图像版本。
其他一些人说“ Heroku超时是你需要解决的问题。直接上传到S3是唯一的选择,需要进行某种上传后处理 ”,所以我建议你做下一步:
也许这不是一个解决方案,但它可能非常有用,它适用于我在Rails应用程序中:
也许你应该把这个繁重的工作转移到后台工作,后者可以从你的网络请求中异步运行。
问候!
所以我终于想出了如何做到这一点。
经过大量来回与AWS代表和Cloudfiles代表并拉出我的头发,我意识到只需要另一个可以写入文件系统的rails服务器就可以少得多。
所以,我在openshift上启动了另一个rails应用程序。 它就像Heroku一样容易上手(事实上,我可能会考虑在那里移动我的rails应用程序,但它现在对我来说太新了,没有Heroku所做的社区)。
然后,我只需要在我的两个rails应用程序之间进行通信。
我知道这不是最好/可扩展/优雅的解决方案,但它完成了工作,这才是最重要的!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.