Облачная платформаAdvanced

Bucket Inventory Overview

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Функция bucket inventory периодически генерирует списки метаданных объектов в бакете. Инвентари помогают лучше понять статусы объектов в бакете.

Инвентарь представляет собой файл CSV. Файлы инвентаря автоматически загружаются в указанный бакет.

Вы указываете, что инвентари генерируются для объектов с одинаковым префиксом имени объекта. Вы также можете задать интервал генерации инвентаря и указать, включать ли все версии объектов в файл инвентаря. Метаданные объектов, которые вы указываете в инвентаре, включают размер файла, время последнего изменения, класс хранения, ETag, multipart upload, статус шифрования и статус репликации.

Ограничения

  • В бакете может быть не более 10 правил инвентаря.
  • Исходный бакет (для которого настроен инвентарь) и целевой бакет (в котором хранятся сгенерированные файлы инвентаря) должны принадлежать одной учетной записи.
  • Исходный и целевой бакеты должны находиться в одном регионе.
  • Файлы инвентаря должны быть в формате CSV.
  • OBS может генерировать файлы инвентаря для всех объектов в бакете или группы объектов, имена которых начинаются с одинакового префикса.
  • Если в бакете несколько правил инвентаря, перекрытие правил инвентаря не допускается.
    • Если в бакете уже существует правило инвентаря для всего бакета, новые правила инвентаря, фильтрующие объекты по префиксам, создать нельзя. Если требуется правило инвентаря, охватывающее только подмножество объектов в бакете, удалите правило инвентаря, настроенное для всего бакета.
    • Если уже существует правило инвентаря, фильтрующее объекты по заданному префиксу, создать правило инвентаря для всего бакета нельзя. Чтобы создать правило инвентаря для всего бакета, убедитесь, что в бакете нет других правил инвентаря, фильтрующих объекты по заданным префиксам.
    • Если в бакете уже существует правило инвентаря, фильтрующее объекты по префиксу имени объекта ab, фильтр нового правила инвентаря не может начинаться с a или abc. Чтобы создать такое правило, сначала необходимо удалить существующее правило инвентаря, конфликтующее с создаваемым правилом.
  • Файлы bucket inventory могут быть зашифрованы только в режиме SSE-KMS.
  • В целевом бакете не может быть включено server-side encryption.

Содержимое в Inventory File

Table 1 перечисляет все возможные поля метаданных, которые может содержать файл инвентаризации.

Table 1 Поля метаданных объектов, разрешённые в файле инвентаризации

Метаданные

Описание

Бакет

Имя исходного бакета

Ключ

Имя объекта. Каждый объект в бакете имеет уникальный ключ. Имена объектов в файле инвентаризации кодируются в URL с использованием UTF-8 и должны быть декодированы перед использованием.

VersionId

ID версии объекта. Это поле не включается в файл инвентаризации, если ObjectVersions в конфигурации инвентаризации установлен в Current version only.

IsLatest

Это поле устанавливается в True, если версия объекта является последней. Это поле не включается в файл инвентаризации, если ObjectVersions в конфигурации инвентаризации установлен в Current version only.

IsDeleteMarker

Когда для source bucket включено версионирование, удаление объекта создаст новый набор метаданных объекта и установит IsDeleteMarker метаданных в true. Это поле не включается в файл инвентаризации, если ObjectVersions в конфигурации инвентаризации установлен в Current version only.

Size

Object size, в байтах

LastModifiedDate

Дата создания объекта или дата последнего изменения

ETag

Шестнадцатеричный дайджест MD5 объекта. ETag — уникальный идентификатор содержимого объекта. Он отражает, изменилось ли содержимое объекта. Например, если значение ETag равно A при загрузке объекта, но меняется на B при его скачивании, это означает, что содержимое объекта изменилось.

StorageClass

Класс хранения объекта

IsMultipartUploaded

Загружен ли объект с помощью multipart upload

ReplicationStatus

Статус кросс-региональной репликации объекта

EncryptionStatus

Статус шифрования объекта

Имя файла инвентаризации

Имя файла инвентаризации имеет следующий формат:

destinationPrefix/sourceBucketName/inventoryId/yyyy-MM-dd'T'HH-mm'Z'/files/UUID_index.csv
  • destinationPrefix указывает префикс, указанный в конфигурации инвентаризации, который может использоваться для группировки файлов инвентаризации. Если префикс не указан, префикс по умолчанию — BucketInventory.
  • sourceBucketName указывает исходный бакет, для которого настроена инвентаризация. Это поле может предотвратить конфликты, когда файлы инвентаризации разных исходных бакетов сохраняются в один и тот же целевой бакет.
  • inventoryId может предотвратить конфликты, когда несколько файлов инвентаризации одного и того же исходного бакета отправляются в один и тот же целевой бакет.
  • yyyy-MM-dd'T'HH-mm'Z' указывает время и дату начала генерации инвентаризации, когда начинается сканирование бакета. Объекты, загруженные в исходный бакет после этого времени, могут не быть включены в файл инвентаризации.
  • UUID_index.csv указывает один из файлов инвентаризации.

Файл manifest.json

Если в бакете содержится большое количество объектов, для одной конфигурации инвентаризации может быть сгенерировано несколько файлов инвентаризации. Генерация этих файлов занимает некоторое время. Например, если в бакете находится 200 000 объектов, генерация всех файлов инвентаризации займет около 1,5 минуты. Через один‑два часа после генерации всех файлов инвентаризации будет создан файл manifest.json. Файл manifest.json содержит информацию обо всех сгенерированных в этот раз файлах инвентаризации, включая:

  • sourceBucket — указывает имя исходного бакета
  • destinationBucket — указывает имя целевого бакета
  • version — указывает версию инвентаризации
  • fileFormat — указывает формат файла инвентаризации
  • fileSchema — указывает поля метаданных объектов, содержащиеся в файлах инвентаризации
  • files — указывает список всех файлов инвентаризации
  • key указывающий имя файла инвентаризации
  • size указывающий размер файла инвентаризации, в байтах
  • inventoriedRecord указывающий количество записей инвентаризации

Ниже приведён пример файла manifest.json.

{
"sourceBucket":"user001",
"destinationBucket":"bucket001",
"version":"2019-01-03",
"fileFormat":"CSV",
"fileSchema":"Bucket,Key,Size,LastModifiedDate,ETag,StorageClass,IsMultipartUploaded,ReplicationStatus,EncryptionStatus",
"files":[
{
"key":"inventory%2Fuser001%2Ftest_id%2F2019-01-03T12-28Z%2Ffiles%2F0000016813AF58E66806C1E2D7F15155_1.csv",
"size":6705647390,
"inventoriedRecord":70585762,
}
]
}

Имя файла manifest.json выглядит следующим образом (для получения подробностей о каждом поле см. Inventory File Name):

destinationPrefix/sourceBucketName/inventoryId/yyyy-MM-dd'T'HH-mm'Z'/manifest.json

Файл symlink.txt

Файл symlink.txt записывает путь к файлу инвентаризации. Он помогает быстро находить все файлы инвентаризации в сценариях big data. Apache Hive совместим с файлом symlink.txt. Hive может автоматически находить файл symlink.txt и файлы инвентаризации, записанные в нём.

Имя файла symlink.txt выглядит следующим образом (для получения подробностей о каждом поле см. Inventory File Name):

destinationPrefix/sourceBucketName/inventoryId/hive/dt=YYYY-MM-DD-00-00/symlink.txt