繁体   English   中英

Rails,Heroku,Paperclip以及将文件上传到S3

[英]Rails, Heroku, Paperclip and the uploading of files to S3

我正在开发一个应用程序,它将允许用户提交大约5 mb大小的zip文件。 然后,我将手动获取这些文件并最终使用它们。

我正在考虑使用纸夹作为heroku建议执行的任务-完全绕开heroku-并仅上传到Amazon S3。

但是,现在让我感到困惑的是,用户模型似乎可以具有一个附件,而不是多个附件。 是否有更好的替代方法,或者直接知道我的存储桶名称和密钥等,直接上传到S3?

还是有一种方法可以配置回形针,使用户可以拥有许多附件? 我有点困惑。

您可以找到许多 可用的 教程来设置带多个附件的回形针。

回形针支持无限数量的附件。

查看S3 POST API ,它需要在服务器上生成一些签名参数,但可以直接将其上传到S3。 成功上传到S3之后,您必须发出一个单独的请求,以通知您的heroku服务器新的附件和附件文件名。 通常,这需要修改[attachment] _file_name参数,以避免回形针不必要地再次上传文件。

总的来说,我发现Paperclip有一些严重的设计缺陷,这意味着它需要不幸的黑客攻击才能与未通过插件上传的文件很好地播放。 我不得不完全破解。 在我的下一个项目中,我将寻找一种替代方案,该替代方案可将附件与模型更清晰地分离,并具有更模块化的存储机制。

就是说,我提到的解决方案很好用。 棘手的部分是在模型上显式设置[attachment] _file_name字段,以便Paperclip认为该文件的原始文件已经存储。

CarrierWave是回形针的一种流行替代方法。 几个月前,当我研究文件附件时,强烈建议这样做。

可以使用S3 Post API,但这将以安全角度来看很容易受到攻击的形式显示您的秘密密钥。

您应该使用直接uploaderm到s3 js库,以便您的秘密密钥保持秘密。

谢谢

暂无
暂无

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

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