【问题标题】:Serve Static HTML Pages + Assets w/ Expiration but serverless提供带有过期但无服务器的静态 HTML 页面 + 资产
【发布时间】:2021-06-22 22:00:43
【问题描述】:

我需要提供带有多个资产(html、css、js 和其他资产文件)但条件不同的静态 HTML 页面:

  • 无服务器(必须在 S3 上)
  • 可以处理带有多个页面的多个静态页面和其他静态资源,如 css、js、图像或字体文件。 (见下面的例子)
  • 有一个过期 - 目标是用户不能共享静态 HTML 页面的限时 URL

以下是我所有的想法(如果我错了,请纠正我):

  • 直接在 Web 级别呈现 - Web 支持呈现特定资产,但无法创建用于加载所有资产的新页面
  • 在 S3 级别上提供服务 - 问题是您如何授权具有限时访问多个文件的用户?
    • 预签名 URL? - 预签名 URL 仅对一个对象有效。
  • 在 S3 存储桶上存储并在 CloudFront 上服务 - S3 级别的相同问题。您如何授权具有限时访问多个文件的用户?
  • 在 S3 级别公开服务 - 每次用户请求访问时,将所有文件复制到一个新的公用文件夹(具有过期),公开服务并将新 URL 提供给用户。
    • 可能很慢?可能很昂贵?

  #example file structure
  .
  +-- index.html
  +-- media
  |   +-- banner.jpg
  |   +-- video.mp4
  +-- styles
  |   +-- main.css
  +-- js
  |   +-- main.js
  +-- about.html
  +-- contact.html

任何意见和建议将不胜感激。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront


    【解决方案1】:

    我所做的是通过 API 网关为 S3 存储桶提供服务。过期和授权将在 API Gateway 端处理。请在此处查看文档:https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html

    要处理子目录,您可以按照这里的说明进行操作:https://stackoverflow.com/a/60336354/6455686

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 2017-01-14
      • 2014-11-17
      • 1970-01-01
      • 2021-09-07
      相关资源
      最近更新 更多