首页 文章

亚马逊s3下载如何处理安全性

提问于
浏览
9

我正在构建一个Web应用程序,我正在考虑使用Amazon S3来存储用户上传 .

我担心的是,我不希望用户A看到他上传的文件的下载链接是urltoMyS3 / doc1234.pdf并尝试urltoMyS3 / doc1235.pdf并获取另一个用户文档 .

我能想到的唯一方法就是只允许Web应用程序连接到S3,然后检查用户是否可以访问Web应用程序上的文件,让Web应用程序下载文件,然后提供服务给客户 . 此方法的问题是应用程序必须首先下载文件,并且不可避免地会降低用户的下载过程 .

如何通常使用Amazon S3处理用户文件?或者它通常不会在文件不公开的情况下使用?还有其他类似的服务吗?

谢谢

3 回答

  • 0

    您可以实现Query String Authentication,这将解决您的问题 .

    查询字符串身份验证对于为通常需要身份验证的资源提供HTTP或浏览器访问权限非常有用 . 查询字符串中的签名可以保护请求 . 查询字符串身份验证请求需要到期日期 . 您可以在纪元或UNIX时间(自1970年1月1日以来的秒数)指定任何未来到期时间 .

  • 9

    您可以通过生成相应的链接来执行此操作,请参阅以下内容

    https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationQueryStringAuth

  • 3

    如果时间限制身份验证不起作用(如其他答案中所建议) . 您可以考虑实现类似s3fs的东西,将S3存储桶作为驱动器安装在Web应用程序服务器上 . 通过这种方式,您可以简单地进行身份验证,然后直接将文件提供给用户,而无需他们知道该文件位于S3中 . 同样,您只需将上传的文件直接写入此s3fs挂载即可 .

    S3fs还允许您在计算机上配置S3目录的本地缓存,以便更快地访问 .

    这在集群Web服务器环境中也可以很好地工作,因为您可以让每个服务器挂载s3fs驱动器并独立执行/读取/写入 .

    A link with more info

相关问题