Rails + Amazon S3 + Heroku:S3上的文件的url是公共的如何保护,以及admin如何将文件添加到用户文件夹?

时间:2012-06-19 01:26:31

标签: ruby-on-rails file-upload heroku amazon-s3

我有一个rails应用程序,我有一个像功能集的下拉框。

每个用户都有一个登录密码 每个用户都可以上传和下载自己的文件。 在他们的索引页面上,他们会看到他们上传的所有文件。 文件的URL保存在db:in heroku

我有一些关于如何处理我想添加到应用程序中的功能的问题。

1)作为管理员,我希望将文件添加到用户文件夹,这些文件将在用户下次登录其应用时显示。目前,即使我删除文件夹中的文件,用户也无法看到它,因为他们的index.html页面只会提取那些将其网址存储在数据库中的文件

2)目前文件访问是通过url进行公开访问的。这是个大问题。我想设置应用程序,使网址不公开。由于我使用heroku我无法将它们存储在heroku服务器上,我不想将它们流式传输到应用程序中,然后通过Heroku将它们提供给用户。那么最好的方法是直接从S3服务它们但不透露网址。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我认为1)的答案是创建一个允许管理员创建文件对象并将其与用户关联的动作。

对于2)(这应该有助于搞清楚1),顺便说一句,Paperclip gem支持将文件附加到模型,并提供将文件存储在S3上的选项(以及指定文件的能力)该文件的URL。)

以下是许多related tutorials中的一个,其中介绍了保护对这些文件的访问权限的一些注意事项。