Как установить заголовки 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 также будет редактировать заголовки.
- Выберите все предметы
- команда & я (получить информацию)
- Предлагает графический интерфейс для редактирования различных заголовков со встроенными пресетами.
Всего обработано 6000 изображений в одном ведре без заминки.
Ответ 5
- Выберите папку
- Из верхнего меню, Подробнее
- Выберите Изменить метаданные
- Добавить ключ как истекает
- Добавьте значение как 2592000 (например)
Ответ 6
Довольно точно, что это невозможно сделать в одном запросе. Вместо этого вам нужно будет сделать 10 000 PUT запросов, по одному для каждого ключа, с новыми заголовками/метаданными, которые вы хотите вместе с заголовком x-amz-copy-source
указывая на один и тот же ключ (так что вам не нужно повторно загружать объект). Ссылка, которую я предоставил, более подробно описывает операцию PUT-копирования, но это в значительной степени способ изменения метаданных объекта на s3.