如何使用boto3开通私人静态网站?

如何使用boto3开通私人静态网站?

我有一个静态网站,其中包含多个 HTML、CSS 和媒体文件,这些文件已上传到私有 S3 存储桶。我想使用 Web 浏览器访问该网站。

我目前正在使用 boto3 为单个 HTML 文件生成预签名 URL。如何在不公开存储桶的情况下访问整个应用程序?

s3client = boto3.client('s3')
url = s3client.generate_presigned_url(
    ClientMethod='get_object',
    Params={
        'Bucket': 'my-bucket',
        'Key': 'my-website/index.html',
    }
) # url shows html content but no CSS styling or media files

答案1

如果您始终从同一位置(同一公共 IP)进行访问,则可以允许您的公共 IP 对 S3 存储桶内容进行完全读取访问(使用具有 IpAddress 条件的存储桶策略)。

这将是实现您的目标的最简单的方法。

如果您需要更强大的功能,请查看 CloudFront 支持的身份验证选项。签名 Cookies 可能是一种选择,但会增加一定程度的复杂性,这对于静态站点来说可能是不必要的。

相关内容