Функция bucket inventory периодически генерирует списки метаданных объектов в бакете. Инвентари помогают лучше понять статусы объектов в бакете.
Инвентарь представляет собой файл CSV. Файлы инвентаря автоматически загружаются в указанный бакет.
Вы указываете, что инвентари генерируются для объектов с одинаковым префиксом имени объекта. Вы также можете задать интервал генерации инвентаря и указать, включать ли все версии объектов в файл инвентаря. Метаданные объектов, которые вы указываете в инвентаре, включают размер файла, время последнего изменения, класс хранения, ETag, multipart upload, статус шифрования и статус репликации.
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
Если в бакете содержится большое количество объектов, для одной конфигурации инвентаризации может быть сгенерировано несколько файлов инвентаризации. Генерация этих файлов занимает некоторое время. Например, если в бакете находится 200 000 объектов, генерация всех файлов инвентаризации займет около 1,5 минуты. Через один‑два часа после генерации всех файлов инвентаризации будет создан файл manifest.json. Файл manifest.json содержит информацию обо всех сгенерированных в этот раз файлах инвентаризации, включая:
Ниже приведён пример файла manifest.json.
Имя файла manifest.json выглядит следующим образом (для получения подробностей о каждом поле см. Inventory File Name):
destinationPrefix/sourceBucketName/inventoryId/yyyy-MM-dd'T'HH-mm'Z'/manifest.json
Файл 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