首页 > 解决方案 > 使用 CLI 将对象与过期和缓存控制标头同步到 S3?

问题描述

我正在尝试将一些对象同步到 S3 并设置ExpiresCache-Control标头,但我在这里束手无策。似乎没有任何效果。这是我最近的尝试:

aws s3 sync . s3://my-bucket \
    --expires "2020-06-16T13:27:40Z" \
    --cache-control "max-age=315360000, public, s-maxage=31536000, max-age=31536000, immutable" \
    --exclude "*" \
    --metadata-directive REPLACE \
    --include "bundles"

结果:没有Expires标题,没有Cache-Control标题。我在控制台中环顾四周(只有一个元数据,Content-Type),我曾经看过get-object它,我用 . 查看了响应curl。我不太确定metadata-directive- 文档中没有提到它--expires,但是指令选项的文档表明它必须设置为其他选项才能工作。我必须想出什么疯狂的咒语才能在我的对象上设置这些标题?

标签: amazon-web-servicesamazon-s3

解决方案


这最终证明是一个PEBCAC。这在单独运行时确实有效。我将它作为多步骤过程的一部分运行,该过程将首先同步一些文件,除了我想要标头的文件,然后将文件与标头同步。问题是,我在第一次同步时粗手指了exclude模式,所以基本上所有已经同步的文件,所以标题设置同步什么也没做。啊,做开发者不是很可爱吗?


推荐阅读