我有一个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)
不确定采取正确的方法,可能是 -
- 如果非所有者访问文件,则更新文件的ACL并使其只读?
- 将所有上传的文件设为公共文件,并禁用非所有者的公共访问权限,但这也会限制任何对文件的直接访问。
请告诉我哪种逻辑最适合此方法。