Mil*_*ind 5 ruby-on-rails amazon-s3 amazon-web-services aws-sdk-ruby
我有一个 Rails 6 应用程序,注册用户(所有者)可以在 S3 上上传文件 -图像/视频,然后所有者可以向其他用户(邀请)提供访问权限以查看他们上传的内容。
有没有办法限制文件访问,以便只有所有者才能下载他上传的文件(图像/视频),从而对其他非所有者/受邀用户进行限制。。视频/图像不应该通过右键单击并保存/下载来如此轻松地下载。
注意- 上传的文件还包括大视频(mp4 和 HLS 流),因此其他受邀用户可以查看它们,但无法下载,除非他们是所有者/上传者,因为文件来自 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)
Run Code Online (Sandbox Code Playgroud)
不确定,什么是正确的方法,可以 -
让我知道最适合这种方法的逻辑是什么。
小智 2
您想要实现的目标需要多个层面的基础:
根据S3 安全最佳实践,您应该将 S3 端的权限级别保持在最低,足以让应用程序提供预期的行为。
S3 允许您授予对用户特定文件夹的访问权限。
您应该查看授予 gem 的访问权限以涵盖服务器端限制。您还应该研究客户端限制。一种常见的技术是禁用鼠标右键单击。
有关的: