首页 > 解决方案 > 使静态文件仅可供我在 AWS 或 Google Cloud 上托管的应用访问

问题描述

我有一个静态站点(纯 HTML、JS 和 CSS),我将托管在 AWS 或 Google Cloud 上。

该站点从 CSV 中提取数据,该 CSV 可以作为本地文件定位在站点上,或者最好位于另一个端点上。

我的问题是,客户不希望 CSV 文件可公开访问(人们不应该直接访问并下载它)。

该文件需要存在于 AWS S3 或 Google Cloud Storage 上,因为客户端会定期更新它。

但是,我似乎无法弄清楚如何使其对我的应用程序可见,但如果您尝试直接访问该文件则不会。我可以将其公开,以便我的应用程序可以看到它,但其他人也可以。或者让它不公开,所以它不能下载,但我的应用程序也看不到它。

我的问题是 - 我想要实现的目标是否可能?还是 CSV 必须是公开的还是不公开的?

我的理想选择是两个单独的存储桶,一个带有我的静态站点,另一个带有 CSV 文件。

任何建议都将受到欢迎。

标签: amazon-web-servicesamazon-s3google-cloud-storagestatic-site

解决方案


AWS 最近发布了可以帮助您满足需求的新 S3 功能。一种是 Amazon S3 接入点 ( https://aws.amazon.com/s3/features/access-points )。另一个称为 Amazon S3 对象 Lambda ( https://aws.amazon.com/es/blogs/aws/introducing-amazon-s3-object-lambda-use-your-code-to-process-data-as-it -is-being-retrived-from-s3/)。

看起来您可以将 Lambdas 放在 S3 存储桶前面,以处理请求并将其转换为其文件(也称为“对象”)。不幸的是,我对您的问题没有准确的答案,因为我从未实施过此解决方案,但我相信您可能能够将 CSV 文件存储在 S3 中,并且仅通过 S3 访问点才可以访问您的静态站点。

或者,您也可以使用 CloudFront 和 Lambda 关联来限制对 CSV 文件的访问到特定来源。


推荐阅读