Java 如何正确使用s3在web应用程序中传递和存储文件?
因此,出于运营原因,我们计划将静态内容移动到s3。我只是想了解在处理请求的工作流中,s3应该放在哪里。Java 如何正确使用s3在web应用程序中传递和存储文件?,java,amazon-web-services,amazon-s3,server,Java,Amazon Web Services,Amazon S3,Server,因此,出于运营原因,我们计划将静态内容移动到s3。我只是想了解在处理请求的工作流中,s3应该放在哪里。 如果网站需要一个图像,该请求应该首先命中我们的服务,该服务将从s3(反向代理)获取图像,还是客户端直接请求该文件 如何在文件请求中隐藏文件名、路径名和管理权限 同样的问题也适用于上传新内容 处理s3配额和并行请求 我本来打算发表评论,但这变成了一个完整的答案 要么。如果您的资产是公共资产,那么最轻的方法就是从公共存储桶中请求它们。如果不是这样,那么使用Cloudfront可能比在S3请求中使用
我本来打算发表评论,但这变成了一个完整的答案
S3中使其看起来像您的资产A.jpeg
。您的bucket/A.jpeg
位于yourWebsite.com/A.jpeg
。如果您还想隐藏文件名A
,则需要使用例如API网关为您提供文件,而不向前端透露任何有关它的信息。如果是我,我就不会麻烦了
1.请求应该到达cloudfront,然后将传递到S3。2.客户端必须请求文件名,您不能隐藏它们。4.什么配额?S3/Cloudfront可以处理无限数量的并行请求。要添加到@jordanm的注释中,如果S3中的内容是私有的,则需要授权访问它。您可以通过将请求代理到内容(如您所建议的)来实现这一点,或者您的web服务器可以为S3中的每个文件创建S3预签名URL,并将这些URL插入到网页内容中。预签名URL是让您的应用程序管理访问的一种很好的方式,但让S3服务于内容。见: