【问题标题】:How to set expires headers to all images in a bucket in Amazon S3如何为 Amazon S3 中存储桶中的所有图像设置过期标头
【发布时间】:2014-03-03 13:14:23
【问题描述】:

我们在 Amazon S3 的存储桶中有大约 10,000 多张图片,如何一次性为所有图片设置过期标头?

【问题讨论】:

    标签: amazon-s3 expires-header


    【解决方案1】:

    提醒一下,我使用 AWS CLI 找到了一个很好的解决方案:

    aws s3 cp s3://bucketname/optional_path s3://bucketname/optional_path --recursive  --acl public-read  --metadata-directive REPLACE --cache-control max-age=2592000
    

    这会将 Cache-Control 设置为 30 天。请注意,您可以选择复制或替换以前的标题数据。由于 AWS 会自动为每种媒体类型包含正确的元内容类型数据,而且我有一些错误的标头,我只是选择覆盖所有内容。

    【讨论】:

    • 奇怪,我没有配置凭据但它没有抛出任何错误,只需打印出所有图像名称@MauvisLedford
    • @Rollo after cp 你需要重复两次路径,因为它们是源和目标
    • @ericn 我知道这已经很晚了,但您是否可以公开访问您的图片?
    • 如果我们设置了Cache-Control,我们需要过期吗?即使有缓存控制,pingdom 和 gtmetrix 之类的服务似乎也会因缺少 Expires 而犹豫。
    • 注意这不会合并现有的元数据。不幸的是,没有 --metadata-directive MERGE 选项:(
    【解决方案2】:

    您可以通过使用 S3 API 的第三方应用对存储桶文件进行批量更改。这些应用程序不会只使用一个请求来设置标头,而是会自动处理 10,000 多个所需的请求。

    我目前使用的是Cloudberry Explorer,这是一个与您的 S3 存储桶交互的免费软件实用程序。在这个工具中,我可以选择多个文件并指定将应用于所有文件的 HTTP 标头。

    另一种方法是使用 S3 API 库开发您自己的脚本或工具。

    【讨论】:

      【解决方案3】:

      另一种解决方案是在您的 URL 中添加 response-expires 参数。它设置响应的Expires 标头。

      有关详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html 中的请求参数部分。

      【讨论】:

        【解决方案4】:
        1. 选择文件夹
        2. 从顶部菜单,更多
        3. 选择更改元数据
        4. 将密钥添加为过期
        5. 将值添加为 2592000(例如)

        【讨论】:

        • 根据 RFC,整数值是不允许的。developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expires
        • @Arun,这是在 S3 中吗?我想用户界面已经改变,因为顶部菜单中没有“更多”。
        • @YukiMatsukura 如何在 S3 中添加特定日期,其工作方式类似于 Apache 的 access plus 1 year?如果我们手动设置年份等,我们将不得不不断手动编辑 Expires 标头!
        【解决方案5】:

        Cyber​​duck 也会编辑标题。

        1. 选择所有项目
        2. command & i(获取信息)
        3. 提供一个 GUI 来编辑各种带有内置预设的标题。

        在一个存储桶中顺利处理了 6000 张图像。

        【讨论】:

        • 但没有递归选项
        【解决方案6】:

        很确定不可能在单个请求中执行此操作。相反,您必须发出 10,000 个 PUT 请求,每个键一个,您想要的新标头/元数据以及指向同一键的 x-amz-copy-source 标头(这样您就不需要重新上传物体)。我提供的链接更详细地介绍了 PUT 复制操作,但这几乎是 在 s3 上更改对象元数据的方式

        【讨论】:

          猜你喜欢
          • 2010-09-22
          • 2013-10-30
          • 2012-06-27
          • 2012-04-12
          • 1970-01-01
          • 2017-04-30
          • 2012-01-01
          • 2015-07-18
          • 2016-02-06
          相关资源
          最近更新 更多