繁体   English   中英

下载文件从Amazon S3重定向到客户端

[英]Download file redirecting from Amazon S3 to Client

我是Amazon S3的新手,我想构建一个可能不存在的解决方案。

我必须构建一个Web应用程序(Java或PHP后端),用户可以在其中登录和下载文件。 Web服务器(Tomcat或Apache)验证用户并允许从Amazon S3下载。 当我使用CMS时,文件很小,请求很少。 因此,流程为:

Client (User) > Server (user validation) > CMS (get file) > Server > Client (User)

现在,文件更大了,我想得到下一个流程:

Client (User) > Server (user validation) > Amazon S3 > Client (User)

我的目标是提高服务器的性能,并避免在用户获得文件时过多的文件流量。 可能吗?

我的第一种方法(尚未实现!)是从服务器到Amazon S3的sendredirect:

用户请求/file1 =>服务器将/file1转换为/company.s3.amazon/mybucket/file1.pdf并执行sendredirect到Amazon S3链接。

通过这种方法,我认为我无法验证IAM用户(我不使用任何API),但我也可以通过按服务器IP地址过滤的存储桶策略来保护内容。

谢谢。

我建议使用Pre-Signed URL ,这是一种提供存储在Amazon S3中的私有对象的临时访问的方法。

预先签名的URL包括:

  • 档案网址
  • 与有权获取文件的用户相关联的访问密钥
  • 到期时间戳记
  • 基于授权用户的秘密密钥(与他们的访问密钥匹配)的哈希签名

可以从几行代码中生成预签名的URL,只有在GET请求发送到Amazon S3时才进行评估

当您的应用程序(在服务器上)确定用户有权访问文件时 ,它可以生成预签名的URL并将其作为网页的一部分返回(例如,在超链接中)。 当用户单击链接时,文件将直接从S3中提供 到期后,URL将不再提供对该文件的访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM