【发布时间】:2021-07-25 17:24:44
【问题描述】:
我有一个关于 AWS s3 和 cloudfront 的问题。
我在 s3 上托管了一个私有页面(vue-app)的构建并通过 cloudfront 访问它(我使用来自 cloudfront-origin 的 OAI 在 S3 存储桶中编写了一个权限。)。一切正常:当我调用根 url (xxx.cloudfront.net/) 时,我可以访问我的 webapp。当我调用这个 url 时,我的 webapp 添加到 root-url: 'app/documents' 并加载内容。
但我假设有时用户会尝试直接访问 url:'xxx.cloudfront.net/app/documents'。到目前为止,这不起作用:我得到一个AccessDenied(来自 S3)。
我该怎么办?
我的目标是当有人进入一个特定的域(不是根域,例如:xxx.cloudfront.net/app/documents/4,他将能够直接访问id为4的文档。这样的事情可能吗?
PS:我已经看过this question 中的答案,但这对我不起作用。如果我使用自定义域,我不会得到我在 S3 的权限文件中使用的 Origin Access Identity(因此只有 cloudfront 可以访问 s3 代码)。
我还看到了this question,这似乎非常相似。这建议将 index.html 附加到每个请求。也许我不知道,但在我的 S3 存储桶中只有一个 index.html(根目录)。这怎么能行呢?
谢谢你,一切顺利, 卢卡斯
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda amazon-cloudfront