Как указать префикс срока действия объекта, который не соответствует каталогу? - PullRequest
5 голосов
/ 24 февраля 2012

У меня есть корзина S3 с каталогами img, mov и tmp.Я хотел бы, чтобы все добавленное в tmp было автоматически удалено, когда ему исполнилось три дня.Таким образом, я установил правила истечения срока действия объекта правила для моего контейнера следующим образом:

  • префикс: "tmp /"
  • срок действия: 3

Проблема в том, что, хотя файлы внутри tmp удаляются по расписанию, tmp сам также совпадает с этим префиксом (несмотря на косую черту) и удаляется каждые три дня.

Есть ли префикс, которыйбудет соответствовать содержимому tmp, но не самому tmp?Что-то вроде «tmp / *» (хотя это не работает)?

Ответы [ 2 ]

6 голосов
/ 24 февраля 2012

Почему вы хотите сохранить tmp вообще?

Amazon S3 на самом деле не имеет собственной концепции папок / каталогов, а представляет собой плоскую архитектуру хранения, состоящую изТолько корзины и объекты / ключи - представление стиля каталога, которое можно увидеть в большинстве инструментов для S3 (включая Консоль управления AWS ), основано исключительно на соглашении, то есть моделирование иерархии для объектов с одинаковыми префиксами (например, * 1008)* в твоем случае);см. соответствующий раздел часто задаваемых вопросов Как организованы данные Amazon S3? :

Amazon S3 - это простое хранилище объектов на основе ключей .Когда вы сохраняете данные, вы назначаете уникальный ключ объекта, который впоследствии можно будет использовать для извлечения данных.Ключи могут быть любой строкой, а может быть сконструирован для имитации иерархических атрибутов.

[выделение мин]

Эта архитектура дополнительноподробно описано в Amazon S3 Concepts :

Buckets

Bucket - это контейнер для объектов, хранящихся в Amazon S3.Каждый объект содержится в ведре.Например, если объект с именем photos / puppy.jpg хранится в корзине Джонсмита, он адресуется с помощью URL http://johnsmith.s3.amazonaws.com/photos/puppy.jpg

[...]

Ключи

Ключ - это уникальный идентификатор объекта в корзине. Каждый объект в корзине имеет ровно один ключ.Поскольку комбинация корзины, ключа и идентификатора версии однозначно идентифицирует каждый объект, Amazon S3 можно рассматривать как базовую карту данных между "корзиной + ключом + версией" и самим объектом.

[выделение мое]

Поэтому не нужно вообще заботиться об этих «каталогах», они просто всплывают в любое время, когда вы хранитеобъект с соответствующим префиксом в имени.

0 голосов
/ 27 февраля 2012

Кажется, что это возможно с IAM: вы создаете пользователя IAM, который может удалять файлы только в tmp (но не в tmp / самой), а затем используете этого пользователя для помещения жизненного цикла в корзину. Тогда объект tmp / не будет удален.

Но документы не слишком ясны по этому поводу - вам придется проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...