Объект
Объекты размещаются в бакетах и содержат пользовательские данные произвольного формата в том виде, в котором они были загружены.
Идентификатор объекта — строковый ключ.
Вместе с объектом Object Storage хранит пользовательские и системные метаданные.
Object Storage позволяет сохранять объекты в Стандартном и Холодном хранилищах. Подробнее читайте в разделе Класс хранилища.
Object Storage поддерживает следующие операции с объектами:
- Загрузка объекта в хранилище.
- Скачивание объекта из хранилища.
- Копирование объекта внутри хранилища, например, из бакета в бакет.
Все остальные операции, которые можно выполнить с помощью инструментов, являются комбинациями из указанных выше.
Для объекта в бакете можно настроить:
Object Storage накладывает ограничения на размеры объектов и их метаданных. Подробнее смотрите в разделе Квоты и лимиты).
Ключ
Ключ — это идентификатор объекта в бакете.
Структура хранения объектов плоская, хотя инструменты с графическим интерфейсом предлагают работать с Object Storage как с иерархической файловой системой. Видимость иерархического хранилища достигается за счет того, что ключи можно записывать как пути в файловой системе, например, top_level_prefix/subprefix/text_data.txt
. В консоли управления Яндекс.Облака префиксы называются папками.
Ключ должен:
- иметь кодировку UTF-8;
- быть меньше 1024 байт;
- не содержать символов
: * ? " < > | !
.
Для использования в ключе безопасны следующие символы: [a-zA-Z0-9]
, -
, _
, /
, \
. Другие символы могут вызвать различные проблемы при использовании Object Storage.
Папка
В Object Storage нет папок, однако графические файловые менеджеры, например, CyberDuck или интерфейс к Object Storage в консоли управления Яндекс.Облака имитируют папки. В роли папки выступает объект с нулевым размером, ключ которого входит в ключи других объектов как префикс. Например, объект с ключом x
и размером 0 в консоли управления будет папкой, а объект с ключом x/y.txt
— объектом y.txt
, лежащим в папке x
.
Каждый из инструментов управляет объектами и папками согласно своей логике, которая описана в документации на каждый из них.
Примечание
Удаление папки с объектами — асинхронная операция. В начале операции Object Storage готовит список объектов для удаления, затем удаляет их. Если в процессе удаления в Object Storage загрузить объект, который должен лежать в той папке, которая удаляется в текущий момент времени, то объект успешно загрузится. После завершения обеих операций в Object Storage останется папка, которая должна была быть удалена, с новым загруженным объектом.
URL объекта
URL объекта может иметь одну из следующих форм.
https://storage.yandexcloud.net/<bucket>/<key>?<parameters>
https://<bucket>.storage.yandexcloud.net/<key>?<parameters>
Метаданные
С объектом хранятся метаданные в виде пар имя-значение
.
Метаданные могут быть системными и пользовательскими.
Системные метаданные
Системные метаданные определяются Object Storage.
Имя | Описание |
---|---|
Date |
Дата и время отправки запроса на загрузку объекта в Object Storage. |
Content-Length |
Размер объекта в байтах. |
Last-Modified |
Дата создания или последнего изменения объекта. |
Content-MD5 |
MD5 хэш объекта, закодированный в base64. |
Cache-Control |
Значение HTTP заголовка Cache-Control , который клиент передает при сохранении объекта в бакет. В дальнейшем, Object Storage возвращает этот заголовок клиентам при ответе на запрос объекта или его метаданных.Например, заголовок Cache-Control: max-age=200 обозначает, что объект устаревает через 200 секунд после того, как клиент получил его. Подробнее о заголовке читайте в RFC 7234. |
Expires |
Значение HTTP заголовка Expires , который клиент передает при сохранении объекта в бакет. В дальнейшем, Object Storage возвращает этот заголовок клиентам при ответе на запрос объекта или его метаданных.Например, заголовок Expires: Thu, 15 Apr 2020 20:00:00 GMT обозначает, что объект устаревает 15 апреля 2020 года в 20:00:00 по Гринвичу. Подробнее о заголовке читайте в RFC 7234. |
Пользовательские метаданные
При загрузке объекта в Object Storage, вместе с ним можно передать набор метаданных в виде пар имя-значение
.
В HTTP API, совместимом с Amazon S3, метаданные передаются в виде HTTP-заголовков. Имя заголовка должно начинаться с x-amz-meta-
. При запросе объекта через HTTP API Object Storage возвращает метаданные в виде HTTP-заголовков с этим же префиксом.
Имена метаданных должны соответствовать правилам для HTTP-заголовков, кроме того, они должны быть в нижнем регистре.
Примечание
Заголовок PUT-запроса не должен превышать 8KB. Размер пользовательских метаданных в этом заголовке не должен превышать 2KB.