---
title: "Настройка заголовков объектов в S3-хранилище — Timeweb Cloud"
description: "Как установить заголовки для объектов в S3-бакете Timeweb Cloud: через панель управления, с помощью s3cmd и aws s3api — для одного объекта или всего бакета сразу."
---

# Установка заголовков для объектов в S3

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Рассмотрим, как можно установить заголовки для объектов в S3. Это полезно для управления кешированием, добавления пользовательских метаданных и оптимизации работы с данными в бакете.

## Установка заголовков через панель управления

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

![Selection 139](https://content.timeweb.com/assets/ca5ee9f4-d9ae-41d5-9a71-befb5d01d4d1.png?width=792&height=881)

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

![Selection 140](https://content.timeweb.com/assets/5a6f8ea5-074c-473f-8880-7561fafa20c2.png?width=1037&height=894)

### Доступные параметры

Можно настроить следующие параметры.

#### 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-`.
-   Значение — произвольное значение метаданных.

Примеры:

| **Ключ** | **Значение** |
| --- | --- |
| `project` | `website` |
| `owner` | `marketing` |
| `version` | `1.2` |

К объекту можно добавить несколько пользовательских метаданных.

Пользовательские метаданные не изменяют содержимое файла, но могут использоваться приложениями для хранения дополнительной информации об объекте, его классификации или обработки.

## Установка заголовков через командную строку

Вы также можете установить заголовки с помощью командной строки, используя инструменты `[s3cmd](https://timeweb.cloud/docs/s3-storage/tools/s3cmd)` и `aws s3api`.

### Установка заголовка для одного объекта

Чтобы установить заголовок для одного конкретного объекта, используйте команду `s3cmd modify`. Например, чтобы добавить заголовок `Cache-Control` для конкретного объекта:

```shell
s3cmd modify s3://<имя_бакета>/<имя_объекта> --add-header="cache-control:max-age=7000"
```

В данном случае данный объект получит заголовок `Cache-Control` с параметром `max-age=7000`, что указывает браузеру или прокси-серверу кэшировать этот объект в течение `7000` секунд.

### Установка заголовков для всех объектов в бакете

Если нужно установить заголовки для всех объектов в бакете, можно использовать опцию `--recursive`, чтобы применить изменения ко всем файлам:

```shell
s3cmd modify --recursive s3://<имя_бакета> --add-header="cache-control:max-age=7001"
```

Эта команда рекурсивно добавит заголовок `Cache-Control` со значением `max-age=7001` ко всем объектам в указанном бакете.

### Создание кастомного заголовка

Для добавления пользовательских заголовков можно воспользоваться командой `s3cmd modify` с указанием `x-amz-meta`:

```shell
s3cmd modify s3://<имя_бакета>/<имя_объекта> --add-header="x-amz-meta-test-header:test"
```

Здесь создается кастомный заголовок `x-amz-meta-test-header` с значением `test`. При этом в метаданных объекта этот заголовок будет сохранен без префикса `x-amz-meta-`, то есть в результате получим:

```yml
"Metadata": {
	"test-header": "test"
}
```

Это позволяет хранить в объекте дополнительные данные, которые могут быть полезны для обработки или логирования.

### Проверка установленных заголовков

Для проверки установленных заголовков можно воспользоваться командой `aws s3api head-object`. Это позволяет убедиться, что все заголовки и метаданные были успешно добавлены:

```shell
aws s3api head-object --bucket <имя_бакета> --key <имя_объекта> --endpoint-url https://s3.twcstorage.ru
```

Команда вернет информацию об объекте, включая его метаданные и заголовки, что позволяет проверить, что все изменения были применены корректно.
