Как определить класс хранилища в Amazon S3?

#amazon-web-services #amazon-s3 #aws-sdk #amazon-glacier

#amazon-веб-сервисы #amazon-s3

Вопрос:

Предположим, у меня есть медиа-ресурсы, хранящиеся в стандартном хранилище S3. Через 30 дней он переместился в хранилище с стандартным доступом S3, а через 90 дней он перемещается в Glacier с помощью политик жизненного цикла, которые я настроил.

Итак, в любой момент времени, как я могу определить, где хранится объект?

Ответ №1:

Класс хранилища объекта указывает, где «хранятся» данные.

Для стандартного и стандартно-редкого доступа (Standard-IA) объект сохраняется в обычном режиме в Amazon S3.

Для Glacier объект по-прежнему указан в Amazon S3 (включая имя, размер, метаданные и т.д.), Но содержимое объекта хранится в Glacier.

Класс хранилища можно определить с помощью консоли управления, вызова API или интерфейса командной строки AWS (CLI), например:

 $ aws s3api list-objects --bucket my-bucket

 {
    "Contents": [
        {
            "LastModified": "2014-06-19T00:30:49.000Z", 
            "ETag": ""c963435563f7e3e6b143b50ff9c68168"", 
            "StorageClass": "GLACIER", 
            "Key": "foo.jpg", 
            "Owner": {
                "DisplayName": "fred", 
                "ID": "1de5d80077bd70578d092d9b450b0c916c2c79d1d2b550e5a99a4d21ddb1ab1a"
            }, 
            "Size": 15091
        }
    ]
}
  

Смотрите:

Комментарии:

1. Спасибо за ответ, но я хотел получить доступ / обновить объект «foo.jpg «, вернет ли он меня с помощью прямого вызова GET api, или сначала я должен найти класс хранилища, а затем, в зависимости от класса хранилища, я должен вызвать api и получить к нему доступ? Мое приложение для кодирования и распространения мультимедиа, куда ежедневно поступает 200-300 медиафайлов, и я должен хранить это в S3. Поэтому в будущем мне это может понадобиться для любых целей. Вы не всегда можете перечислить корзину с тысячами объектов, чтобы идентифицировать конкретный объект.

2. Объекты в стандарте, Standard-IA и уменьшенной избыточности могут быть немедленно извлечены с помощью обычного запроса GET. Объекты в Glacier не могут быть извлечены, поскольку их содержимого нет в S3. Вам нужно будет инициировать восстановление объекта из Glacier, и он будет доступен для извлечения только через 3-5 часов. Объекты могут быть заменены (загружены с тем же именем) независимо от класса хранилища, но будут запускаться как стандартное хранилище.