Как установить заголовки expires для всех изображений в корзине в Amazon S3

У нас есть около 10 изображений 000+ в корзине в Amazon S3, как я могу установить заголовок expires для всех изображений за один раз?

Ответы

Ответ 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 будет автоматически включать правильные мета-данные типа контента для каждого типа мультимедиа, и у меня было несколько плохих заголовков, я просто решил перезаписать все.

Ответ 2

Вы можете внести массовые изменения в файлы ведра с сторонними приложениями, использующими S3 API. Эти приложения не будут устанавливать заголовки, используя только один запрос, но будут автоматизировать 10 000 + требуемых запросов.

В настоящее время я использую Cloudberry Explorer, который является бесплатной утилитой для взаимодействия с вашими ведрами S3. В этом инструменте я могу выбрать несколько файлов и указать HTTP-заголовки, которые будут применяться ко всем из них.

enter image description here

enter image description here

Альтернативой может быть разработка собственного script или инструмента с использованием библиотек S3 API.

Ответ 3

Альтернативным решением является добавление параметра response-expires в ваш URL. Он устанавливает заголовок Expires ответа.

Подробнее см. раздел "Запросить параметры" в http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html.

Ответ 4

Cyberduck также будет редактировать заголовки.

  1. Выберите все предметы
  2. команда & я (получить информацию)
  3. Предлагает графический интерфейс для редактирования различных заголовков со встроенными пресетами.

Всего обработано 6000 изображений в одном ведре без заминки.

Ответ 5

  1. Выберите папку
  2. Из верхнего меню, Подробнее
  3. Выберите Изменить метаданные
  4. Добавить ключ как истекает
  5. Добавьте значение как 2592000 (например)

Ответ 6

Довольно точно, что это невозможно сделать в одном запросе. Вместо этого вам нужно будет сделать 10 000 PUT запросов, по одному для каждого ключа, с новыми заголовками/метаданными, которые вы хотите вместе с заголовком x-amz-copy-source указывая на один и тот же ключ (так что вам не нужно повторно загружать объект). Ссылка, которую я предоставил, более подробно описывает операцию PUT-копирования, но это в значительной степени способ изменения метаданных объекта на s3.