【发布时间】:2021-12-31 15:50:11
【问题描述】:
我有一个 Rails 6 应用程序,注册用户(所有者)可以在 S3 上上传文件 - 图像/视频,然后是 所有者 可以向其他用户提供访问权限(邀请)以查看他们上传的内容。
有没有办法可以限制文件访问,以便只有所有者才能下载他上传的文件(图像/视频),从而对其他非所有者/受邀用户实施限制。。 视频/图像不应通过右键单击并保存/下载它们来轻松下载。
注意 - 上传的文件还包括大视频(mp4 和 HLS 流媒体),因此其他受邀用户可以查看它们但不能下载,除非他们是所有者/uploaders,因为文件来自 AWS Cloudfront 的视频和 S3(如果它们是图像)。
关联设置如下 -
User has one role
User has many images/videos, each residing in his own folder on s3(`bucket/user_id/image_slug/` or `bucket/user_id/video_slug/`)
User has many invitations(must be view only access to owners file)
不确定,什么是正确的方法,可以-
- 如果文件被非所有者访问,请更新文件的 ACL 并将其设为只读?
- 将所有上传的文件设为公开并禁止非所有者公开访问,但这也会限制对文件的任何直接访问。
让我知道最适合这种方法的逻辑是什么。
【问题讨论】:
-
为了让他们看到图像,浏览器会下载它——一旦他们看到它,就没有什么能阻止他们下载它。您最好的选择是在客户端限制它 - 或者您是否想要阻止下载,除非他们通过您的网络应用程序查看它?
标签: ruby-on-rails amazon-web-services amazon-s3 aws-sdk-ruby