我有一个网站,用户可以将资源(例如pdf文件)上传到他们的帐户。我使用AWS S3来托管所有上传的文件,我使用AWS Java SDK 1.8.9.1在我的网站和S3之间进行通信。
现在,我想让用户能够下载和查看他们上传的文件,但我只希望通过我的网站实现这一目标。也就是说,在我的网站上,用户应该有他们可以点击的每个文件的下载链接,然后开始下载。但是,如果他们复制下载链接的URL并将其发送给他们的朋友,则该朋友不应该能够下载该文件。
我知道可以将对S3存储桶的访问限制为指定的引用URL。但是,我也被告知,这很容易被伪造,而且不是可行的方法。我认为可能存在签名请求的解决方案。
我怎样才能做到这一点?
答案 0 :(得分:2)
您可以修改您的应用程序,以便通过它代理下载链接。即应用程序应该与上传过程相反。
因此,您可以提供指向您的Java应用程序的链接,然后转到S3并检索该文件并将其返回给用户。这样,如果有人共享链接,您可以保护该网址并要求用户在下载文件之前登录。