繁体   English   中英

如何从json请求直接将图像发布到heroku应用程序上的s3?

[英]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应用程序中:

工人Dynos,背景工作和排队

也许你应该把这个繁重的工作转移到后台工作,后者可以从你的网络请求中异步运行。

问候!

所以我终于想出了如何做到这一点。

经过大量来回与AWS代表和Cloudfiles代表并拉出我的头发,我意识到只需要另一个可以写入文件系统的rails服务器就可以少得多。

所以,我在openshift上启动了另一个rails应用程序。 它就像Heroku一样容易上手(事实上,我可能会考虑在那里移动我的rails应用程序,但它现在对我来说太新了,没有Heroku所做的社区)。

然后,我只需要在我的两个rails应用程序之间进行通信。

我知道这不是最好/可扩展/优雅的解决方案,但它完成了工作,这才是最重要的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM