Versioning
Методы для работы с версионированием объектов бакета:
- GetBucketVersioning — посмотреть статус версионирования.
- PutBucketVersioning — включить или приостановить версионирование.
- ListObjectVersions — получить метаданные обо всех версиях объектов в бакете.
Операция GET возвращает информацию по версионирование бакета. Версионирование может быть установлено в одно из двух состояний: Enabled — включено; Suspended — приостановлено.
Пример ответа:
HTTP/1.1 200<?xml version="1.0" encoding="UTF-8"?><VersioningConfiguration><Status>Suspended</Status></VersioningConfiguration>
Операция PUT включает или приостанавливает версионирование бакета. Версионирование можно установить в одно из двух состояний:
Enabled— управление версиями объектов включено. Всем новым объектам, добавляемым в бакет, будет присвоен уникальный идентификатор версииversionId. Объекты, уже существовавшие в бакете до включения версионирования, имеют идентификатор версии, равныйnull. После изменения этих объектов им также будет присвоенversionId.Suspended— управление версиями приостановлено. Всем новым объектам, добавляемым в бакет, будет присвоен идентификатор версии, равныйnull.
Пример запроса на включение версионирования бакета:
PUT /?versioning HTTP/1.1Host: my-test-bucket1.hb.bizmrg.comContent-MD5: ContentMD5<?xml version="1.0" encoding="UTF-8"?><VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Status>Enabled</Status></VersioningConfiguration>
Здесь <Status> — статус версионирования бакета. Возможные значения: Enabled — включено; Suspended — приостановлено.
Пример ответа:
HTTP/1.1 200 OKx-amz-id-2: YgIPIfBiKa2bj0KMg95r/0zo3emzU4dzsD4rcKCHQUAdQkf3ShJTOOpXUueF6QKox-amz-request-id: 236A8905248E5A01Date: Wed, 01 Mar 2006 12:00:00 GMT3
Возвращает метаданные обо всех версиях объектов в бакете, включая маркер удаления объекта. Можно использовать параметры запроса в качестве критерия выбора для возврата метаданных о подмножестве версий объекта.
Чтобы успешно выполнить операцию необходимо обладать правами на чтение бакета READ.
Пример запроса:
GET /?versions&delimiter=Delimiter&encoding-type=EncodingType&key-marker=KeyMarker&max-keys=MaxKeys&prefix=Prefix&version-id-marker=VersionIdMarker HTTP/1.1Host: my-test-bucket1.hb.bizmrg.comx-amz-expected-bucket-owner: ExpectedBucketOwnerx-amz-request-payer: RequestPayerx-amz-optional-object-attributes: OptionalObjectAttributes
Path параметры
Параметр | Описание |
|---|---|
| Параметр для группировки ключей.
Группирует ключи, в которых есть |
| Тип кодировки ключей объектов в ответе |
| Ключ, с которого начнется перечисление объектов |
| Максимальное количество элементов в ответе (до 1000), по умолчанию — 1000 |
| При указании параметра будут показаны ключи, начинающиеся с указанного префикса |
| Версия объекта, с которой начинается перечисление объектов. Обязательно указывается с |
Код ответа
HTTP: 200 OK.
Успешный ответ содержит дополнительные данные в формате XML:
<ListVersionsResult><IsTruncated>boolean</IsTruncated><KeyMarker>string</KeyMarker><VersionIdMarker>string</VersionIdMarker><NextKeyMarker>string</NextKeyMarker><NextVersionIdMarker>string</NextVersionIdMarker><Version><ChecksumAlgorithm>string</ChecksumAlgorithm>...<ChecksumType>string</ChecksumType><ETag>string</ETag><IsLatest>boolean</IsLatest><Key>string</Key><LastModified>timestamp</LastModified><Owner><DisplayName>string</DisplayName><ID>string</ID></Owner><RestoreStatus><IsRestoreInProgress>boolean</IsRestoreInProgress><RestoreExpiryDate>timestamp</RestoreExpiryDate></RestoreStatus><Size>long</Size><StorageClass>string</StorageClass><VersionId>string</VersionId></Version>...<DeleteMarker><IsLatest>boolean</IsLatest><Key>string</Key><LastModified>timestamp</LastModified><Owner><DisplayName>string</DisplayName><ID>string</ID></Owner><VersionId>string</VersionId></DeleteMarker>...<Name>string</Name><Prefix>string</Prefix><Delimiter>string</Delimiter><MaxKeys>integer</MaxKeys><CommonPrefixes><Prefix>string</Prefix></CommonPrefixes>...<EncodingType>string</EncodingType></ListVersionsResult>
Здесь:
CommonPrefixes— Часть имени ключа, которая определяется при обработке параметровdelimiterиprefix.DeleteMarker— Маркер удаления объектов.Delimiter— Значение параметраdelimiter.EncodingType— Кодировка, в которой VK Object Storage представляет ключ в XML-ответе. Появляется, если клиент при запросе передал параметрencoding-type.IsLatest— Флаг указания актуальной версии объекта.IsTruncated— Флаг, указывающий, все ли ключи были выданы. ЕслиIsTruncated—true, то VK Object Storage вернула не полный список частей.KeyMarker— Последний ключ, возвращенный в неполном ответе.LastModified— Временная метка последнего изменения объекта.MaxKeys— Значение параметраmax-keys.NextKeyMarker— Значение, которое надо подставить в параметрkey-markerдля получения следующей части списка, если весь список не поместился в текущий ответ.NextVersionIdMarker— Значение, которое надо подставить в параметрversion-id-markerдля получения следующей части списка, если весь список не поместился в текущий ответ.Prefix— Значение параметраprefix.Version— Версия объекта.VersionIdMarker— Отмечает последнюю версию ключа, возвращенную в усеченном ответе.