【问题标题】:How to serve static files from S3 using CloudFront如何使用 CloudFront 从 S3 提供静态文件
【发布时间】:2023-03-13 15:07:01
【问题描述】:

我在 2 个来源前有一个 CloudFront 分配:

  • S3
  • API 网关 (Lambda)

我希望从 S3 提供所有静态文件,而从 API Gateway 提供其余文件。

仅供参考,我正在尝试使用 Nginx 提供的静态文件和 PHP 通过 PHP-FPM 提供的其余文件来重现经典的 PHP 设置。

我怎样才能做到这一点?

我目前正在做的是:

它可以工作,但它显然很糟糕,因为我必须手动添加所有静态文件扩展名。有没有办法匹配所有静态文件?或者检查一个文件是否存在于 S3 中并从那里提供它?

【问题讨论】:

    标签: amazon-s3 aws-lambda aws-api-gateway amazon-cloudfront


    【解决方案1】:

    选项 1. 让默认模式为存储桶,并使用 API 的路径模式创建缓存行为,例如 /api/*。在这里可能不实用。

    选项 2. 匹配扩展名前的点,用于向 S3 发送文件请求,如 /*.?? /*.??? 等。? 占位符匹配 exactly one character 并且末尾没有 *,必须成为路径末尾那么多字符中的一个点。

    选项 3. 匹配 /assets/* 之类的前缀并将所有这些请求发送到存储桶。在对象键的开头使用assets/ 存储所有对象。

    【讨论】:

    • 谢谢,太糟糕了,没有更好的选择。我最终使用了*.* 模式来匹配文件名(这些文件名将由 S3 提供)。
    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 2017-10-15
    • 1970-01-01
    • 2013-02-20
    • 2012-10-29
    • 2021-07-07
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多