我正在构建一个应用程序(Rails 3.2.8),用户可以上传音乐曲目和相关剪辑。虽然剪辑可以公开访问,但如果没有购买,则无法访问曲目。我正在使用carrierwave上传这两种类型的文件。但是,我不想向用户公开实际的跟踪路径。
此类服务使用哪些技术来保护文件的热链接和/或未经授权的访问?
目前,载波路径如下:
def store_dir
"tracks/#{model.user_id}/"
end
然而,这非常脆弱。任何人都可以轻松猜出网址。
对于授权下载,我可以考虑: 1.静态下载链接(此链接始终对该用户有效。但是,没有访客或其他用户可以使用该URL) 2.每次下载的一般临时链接!
请告诉我我可以考虑的方式(我会研究它们),以便我可以保证文件免于下载而无需购买。
答案 0 :(得分:1)
好像你想要两个,公开的剪辑和私人的轨道。 我也尝试使用下面的方法(未测试)
来实现这一点def fog_public
return @job.job_kind == 'public'
end
答案 1 :(得分:0)
s3允许您存储私人文件,它们仅在给定时间段内可用且具有访问令牌。
使用carrierwave,您只需将fog_publig
设置为false,如此处所述https://github.com/jnicklas/carrierwave#using-amazon-s3