Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 当原点为s3时,如何从aws cloudfront转发标头_Amazon Web Services_Amazon S3_Http Headers_Amazon Cloudfront - Fatal编程技术网

Amazon web services 当原点为s3时,如何从aws cloudfront转发标头

Amazon web services 当原点为s3时,如何从aws cloudfront转发标头,amazon-web-services,amazon-s3,http-headers,amazon-cloudfront,Amazon Web Services,Amazon S3,Http Headers,Amazon Cloudfront,我正试图利用浏览器缓存为我的网站,以请“谷歌网页速度检查” 谷歌抱怨我的图片中没有定义过期日期,所以我试图在图片中添加一个“cache control”标题。我通过Amazon cloudfront为图像提供服务,源代码是S3。我读了几篇文章,我的步骤如下: 我转到我的s3bucket并手动设置“缓存控制”标题 对于我的测试对象(图像)。我可以工作,并且可以在浏览器中看到标题 我转到我的CloudFront发行版,“行为”->“编辑”和 在那里,我尝试了以下几点: a) 将“转发标题”设置为“全

我正试图利用浏览器缓存为我的网站,以请“谷歌网页速度检查”

谷歌抱怨我的图片中没有定义过期日期,所以我试图在图片中添加一个
“cache control”标题。我通过Amazon cloudfront
为图像提供服务,源代码是
S3
。我读了几篇文章,我的步骤如下:

  • 我转到我的
    s3
    bucket并手动设置
    “缓存控制”标题
    对于我的测试对象(图像)。我可以工作,并且可以在浏览器中看到标题
  • 我转到我的CloudFront发行版,
    “行为”->“编辑”
    和 在那里,我尝试了以下几点:

    a) 将“转发标题”设置为“全部”。亚马逊抱怨
    “所有”
    价值 当原点为
    s3
    时无法设置

    b) 将
    “转发标题”设置为“白名单”
    ->添加
    “源文件”
    为 白名单标题。它不起作用。当我检查我的浏览器时,我不知道 请参阅
    “缓存控制”标题

    c) 将
    的“转发头”设置为“无”
    ->,将
    的“对象缓存”
    设置为“使用” “源缓存头”。它不起作用

    d) 将
    “转发头”
    设置为
    “无”
    ->,将
    “对象缓存”
    设置为
    “Cusomize”
    ->为最小/最大/默认TTL指定一个值。没有 工作


  • 所以我没有选择和希望了。有什么想法可以让
    CloudFront
    将标题转发到浏览器吗?

    问题是您没有等待更改传播。我已经成功地使用了以下配置

    发布此消息,只需等待更改传播。(如果你很不耐烦,那么创建一个
    *
    无效声明)

    要上载资产,可以使用以下命令[假设已下载aws cli]

    aws s3 sync local_dir s3://bucket --cache-control max-age=604800
    

    是的,你说得对,卡兰,我宣布我的目标无效,然后工作得很好!作为后续工作,我还尝试在cloudfront上启用gzip压缩。为此,我在对象中添加了一个“Content Length”标题,并按照aws上几篇文章/博客的指示将“Compress Objects Automatically”设置为“Yes”。但是,对象不会被压缩。也许你对此有一个想法?你只需要检查从CloudFront自动缓存对象的选项,不需要在S3中更改它,同样,你还需要再次等待:)事实上,我已经等待了,并且也已经使对象无效了……无论如何,我会等待更长的时间。如果这个问题没有解决,你可以将其作为不同的问题发布。