Rails / Heroku:如何让我们的用户通过我们的应用将照片发送到他们的帐户?

时间:2011-10-13 17:40:19

标签: ruby-on-rails email heroku attachment

我需要为用户提供一种方法,将照片(或视频)发送到我们的rails 3应用程序上,该应用程序在Heroku上运行。

由于我们使用的是Heroku(无本地存储空间),因此需要将照片(或视频)保存到我们的S3帐户中。当然,我们需要能够为每个用户支持一个唯一的私人地址,以便我们知道传入照片的帐户。

任何建议将不胜感激!我正在查看Heroku的CloudMailIn插件,但是他们只提供一个电子邮件地址,因此不确定如何将每个用户都用自己独特的收件箱地址。

2 个答案:

答案 0 :(得分:3)

使用cloudmailin - 它非常适合你想要的。

您已经知道您的用户电子邮件地址,因此如果他们向uploads@yourcompany.com发送电子邮件,则“发件人”地址会识别该用户,以便您知道是谁发送的,无需为每个人分别提供特殊的电子邮件地址 - 如果电子邮件来自您不认识的人,您可以拒绝。

Cloudmailin处理所有电子邮件方面的东西和smtp的东西然后只是在你的应用程序传递(发送到你指定的电子邮件)的“帖子”,你可以在一些计划甚至有cloudmailin put附件直接上S3给你

答案 1 :(得分:1)

只是一个想法

  • 使用谷歌应用程序(当您管理自己的域名时,通过电子邮件上传使用单独的域名可能是个好主意)或您自己的提供商,只要您拥有大邮箱+捕获所有地址支持。< / LI>
  • 捕获所有帐户,即uploads@uploads-company.com,它将接收来自所有用户的邮件
  • 使用 user-email-token @ uploads-company.com,其中user-email-token是一个独特的,很难猜到(用户通过访问他/她的帐户页面获取它)连接的东西此电子邮件发送给系统中的用户

实施基础

  • 用户将电子邮件发送到特殊电子邮件地址
  • 知道如何阅读电子邮件(定期,imap / pop),提取附件并将​​其上传到Amazon S3 +的自定义工作人员知道哪个电子邮件令牌属于哪个用户
  • 使用delayed_job来处理这个过程(http://devcenter.heroku.com/articles/delayed-job)
  • 在上传到S3之前可能会使用heroku上的/ app / tmp文件夹作为临时存储空间(大小有限,可能不适用于大视频)