Рассмотрим, как можно установить заголовки для объектов в S3. Это полезно для управления кешированием, добавления пользовательских метаданных и оптимизации работы с данными в бакете.
Установка заголовков через панель управления
Для установки заголовков из панели управления перейдите в раздел «Объекты» в необходимом бакете. Наведите курсор на нужный файл, нажмите на три точки и выберите пункт «Изменить метаданные».

Для добавления кастомного заголовка нажмите на кнопку «Добавить».

Доступные параметры
Можно настроить следующие параметры.
Content-Type
MIME-тип содержимого объекта. Определяет формат файла и используется клиентскими приложениями для его корректной обработки.
Примеры значений:
application/pdf— PDF-документ;image/jpeg— изображение JPEG;text/plain— текстовый файл;application/json— JSON-документ.
Если указать неверное значение, браузер или приложение могут некорректно определить тип файла.
Cache-Control
Управляет кэшированием объекта браузерами, CDN и промежуточными прокси-серверами.
Пример: max-age=3600
В этом случае объект может храниться в кэше в течение 3600 секунд (1 часа) без повторного обращения к хранилищу.
Content-Encoding
Указывает способ кодирования содержимого объекта.
Пример: gzip
Используется для файлов, которые были сжаты перед загрузкой в хранилище. При получении объекта клиент может автоматически выполнить распаковку содержимого.
Content-Disposition
Определяет способ обработки файла при скачивании.
Наиболее распространенные значения:
attachment— предложить пользователю скачать файл;inline— попытаться открыть файл непосредственно в браузере.
Например, для PDF-документов значение inline позволяет открыть документ во вкладке браузера, а инициирует его скачивание.
Пользовательские метаданные (Metadata)
Позволяют добавить произвольные пары «ключ — значение», связанные с объектом.
Для добавления пользовательских метаданных нажмите «Добавить» и заполните поля:
- Ключ — имя метаданных. Ключи пользовательских метаданных сохраняются с префиксом
x-amz-meta-. - Значение — произвольное значение метаданных.
Примеры:
|
Ключ |
Значение |
|
|
|
|
|
|
|
|
|
К объекту можно добавить несколько пользовательских метаданных.
Пользовательские метаданные не изменяют содержимое файла, но могут использоваться приложениями для хранения дополнительной информации об объекте, его классификации или обработки.
Установка заголовков через командную строку
Вы также можете установить заголовки с помощью командной строки, используя инструменты s3cmd и aws s3api.
Установка заголовка для одного объекта
Чтобы установить заголовок для одного конкретного объекта, используйте команду s3cmd modify. Например, чтобы добавить заголовок Cache-Control для конкретного объекта:
s3cmd modify s3://<имя_бакета>/<имя_объекта> --add-header="cache-control:max-age=7000"
В данном случае данный объект получит заголовок Cache-Control с параметром max-age=7000, что указывает браузеру или прокси-серверу кэшировать этот объект в течение 7000 секунд.
Установка заголовков для всех объектов в бакете
Если нужно установить заголовки для всех объектов в бакете, можно использовать опцию --recursive, чтобы применить изменения ко всем файлам:
s3cmd modify --recursive s3://<имя_бакета> --add-header="cache-control:max-age=7001"
Эта команда рекурсивно добавит заголовок Cache-Control со значением max-age=7001 ко всем объектам в указанном бакете.
Создание кастомного заголовка
Для добавления пользовательских заголовков можно воспользоваться командой s3cmd modify с указанием x-amz-meta:
s3cmd modify s3://<имя_бакета>/<имя_объекта> --add-header="x-amz-meta-test-header:test"
Здесь создается кастомный заголовок x-amz-meta-test-header с значением test. При этом в метаданных объекта этот заголовок будет сохранен без префикса x-amz-meta-, то есть в результате получим:
"Metadata": {
"test-header": "test"
}
Это позволяет хранить в объекте дополнительные данные, которые могут быть полезны для обработки или логирования.
Проверка установленных заголовков
Для проверки установленных заголовков можно воспользоваться командой aws s3api head-object. Это позволяет убедиться, что все заголовки и метаданные были успешно добавлены:
aws s3api head-object --bucket <имя_бакета> --key <имя_объекта> --endpoint-url https://s3.twcstorage.ru
Команда вернет информацию об объекте, включая его метаданные и заголовки, что позволяет проверить, что все изменения были применены корректно.