[Документация Yandex Cloud](../../../../index.md) > [Yandex Object Storage](../../../index.md) > Справочник API > [AWS S3 REST](../../index.md) > [REST](../index.md) > Object > patch

# Object Storage API, REST совместимый с Amazon S3: patch

[Частично изменяет и дозаписывает данные объекта](../../../concepts/object-patch.md) в Yandex Object Storage.

{% note info %}

Механизм частичного изменения объекта не входит в стандартную функциональность [S3 API](../../index.md) и доступен для бакетов с выключенным [версионированием](../../../concepts/versioning.md).

{% endnote %}

В запросе передаются изменяемый диапазон объекта и новые данные.

Допускается [одновременное изменение объекта](../../../concepts/object-patch.md#concurrent-patch) несколькими запросами.

Подробнее о подготовке к работе с API и общем виде запроса в разделе [Как пользоваться S3 API](../../index.md).

## Запрос {#request}

```http
PATCH /{bucket}/{key} HTTP/2
```

### Path параметры {#path-parameters}

Параметр | Описание
----- | -----
`bucket` | Имя бакета.
`key` | Ключ объекта. Идентификатор, под которым объект хранится в Object Storage.

### Заголовки {#request-headers}

Используйте в запросе [общие заголовки](../common-request-headers.md), а также заголовки, представленные ниже:

Заголовок | Описание
----- | -----
`Content-Range` | Обязательный параметр.<br/>Значение: `bytes {<начальный_байт>}-{<конечный_байт>}/*`.<br/>Границы диапазона включены. Максимальная длина диапазона — 5 ГБ.<br/>[Заголовок](../common-request-headers.md) `Content-Length` должен быть равен длине `Content-Range`.<br/>Чтобы дозаписать данные в объект, укажите значение конечного байта большее, чем размер объекта.<br/>Значение начального байта не может быть больше, чем размер объекта.<br/>Формат заголовка соответствует спецификации [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110#name-content-range) со следующими исключениями:<ul><li>Параметр заголовка `complete-length` игнорируется.</li><li>Параметр заголовка `last-pos` опциональный.</li></ul>
`X-Yc-S3-Patch-Append-Part-Size` | Опциональный параметр.<br/>Значение: `{размер_новой_составной_части}`.<br/>Размер новых составных частей объекта, [загруженного по частям](../multipart.md), при дозаписи в конец объекта. В байтах.<br/>Если последняя составная часть объекта достигла указанного размера, следующая дозапись будет сохранена как новая составная часть.<br/>Значение по умолчанию — 25 МБ.
`If-Match` | Опциональный параметр.<br/>Условие для частичного изменения объекта.<br/>Если `ETag` объекта равен заданному в заголовке, то операция выполняется.<br/>Если условие не выполнено, то Object Storage вернет ошибку 412 `Precondition Failed`.<br/>Можно использовать вместе с заголовком `If-Unmodified-Since`.
`If-Unmodified-Since` | Опциональный параметр.<br/>Условие для частичного изменения объекта.<br/>Операция выполняется, если объект не менялся с указанного времени.<br/>Если условие не выполнено, то Object Storage вернет ошибку 412 `Precondition Failed`.<br/>Можно использовать вместе с заголовком `If-Match`.

## Ответ {#response}

### Заголовки {#response-headers}

Ответ может содержать только [общие заголовки](../common-response-headers.md).

### Коды ответов {#response-codes}

Перечень возможных ответов смотрите в разделе [Ответы](../response-codes.md).

Дополнительно Object Storage может вернуть ошибки, описанные в таблице ниже.

Ошибка | Описание
----- | -----
`MissingContentRange` | В запросе отсутствует заголовок `Content-Range`.
`MalformedPatchAppendPartSize` | В запросе неверно указано значение заголовка `X-Yc-S3-Patch-Append-Part-Size`.
`ObjectVersionPatchConflict` | Во время частичного изменения объект был перезаписан новой версией.
`ConcurrentUpdatesPatchConflict` | Из-за большого количества одновременных запросов не удалось разрешить конфликт.

### Схема данных {#response-scheme}

```xml
<?xml version="1.0" encoding="UTF-8"?>
<PatchObjectResult>
    <Object>
    	<LastModified>2023-07-21T11:46:16.357Z</LastModified>
        <ETag>&#34;daebcb5e72f14b690c18018c9f92af05-2&#34;</ETag>
    </Object>
</PatchObjectResult>
```

Тег | Описание
----- | -----
`PatchObjectResult` | Корневой элемент.
`Object` | Родительский тег для результатов изменения.
`LastModified` | Дата и время последнего изменения объекта. При частичном изменении объекта тег не изменяется.
`ETag` | ETag обновленного объекта. Подробнее смотрите [общие заголовки](../common-response-headers.md).

#### Связанные статьи {#related-articles}

* [Объект](../../../concepts/object.md)

* [Частичное изменение объекта](../../../concepts/object-patch.md)

#### Полезные ссылки {#see-also}

* [Начало работы с AWS S3 API в Yandex Object Storage](../../s3-api-quickstart.md)

* [Отладка запросов с помощью утилиты AWS CLI](../../signing-requests.md#debugging)

* [Пример отправки подписанного запроса с помощью утилиты curl](../../../api-ref/authentication.md#s3-api-example)

* [Пример кода для генерации подписи](../../../concepts/pre-signed-urls.md#code-examples)