AWS S3-теги для автоматической c репликации с указанным префиксом c? - PullRequest
1 голос
/ 26 мая 2020

У меня есть две корзины S3, настроенные для межрегиональной репликации . Всякий раз, когда в исходном сегменте происходит загрузка с заданным префиксом c, мне нужно, чтобы соответствующие данные реплицировались в мой «сегмент обработки» в другом регионе. Однако мне нужно знать хотя бы некоторую информацию об исходном исходном сегменте после процесса репликации, потому что я хочу настроить несколько сегментов, включая репликацию с тем же целевым сегментом, в то время как обработка будет выполняться с помощью лямбда-событий. Я думал о том, чтобы заставить это работать с тегами, но я не могу найти способы автоматически пометить загруженные данные, содержащие конкретный префикс c, до (или после?) Их репликации.

Единственное, что приближается к этому топи c, которое я смог найти, было https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-put-object-tagging.html, но я не могу придать этому большого значения, поскольку я не уверен, если это это то, что я ищу, особенно в отношении функции автоматической c репликации.

Напомним: я хочу обрабатывать данные с помощью лямбда-событий и различать их происхождение по информации, содержащейся в * 1019 события * данные (например, из определенных тегов c в файле S3).

Как лучше всего подойти к этому?

1 Ответ

3 голосов
/ 26 мая 2020

Теги объектов

Теги объектов зависит от того, как они загружаются в S3. Если вы используете CLI. После того, как вы скопировали файл с помощью aws s3 cp, вы можете вызвать команды s3api для добавления тегов.

[aws s3api put-object-tagging --bucket \[bucket name\] --key \[object key\] --tagging 'TagSet=\[{Key=mykey,Value=myvalue},{Key=yourkey,Value=yourvalue}\]'][2]

В качестве альтернативы вы можете добавить Lambda Trigger , который добавляет теги к объекту, когда загружено. Вы можете сделать это, используя примеры, описанные здесь .

Репликация корзины:

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

В документации AWS для репликации конфигурация назначения определяется как:

{
  "AccessControlTranslation" : AccessControlTranslation,
  "Account" : String,
  "Bucket" : String,
  "EncryptionConfiguration" : EncryptionConfiguration,
  "StorageClass" : String
}

В настоящее время вы можете установить только место назначения StorageClass, Bucket, Account и Configuration. Сегмент - это просто имя сегмента, без префикса.

Если установлены правильные разрешения , репликация может реплицировать теги, теги можно добавлять в любое время. то есть вы можете добавить объект, он может реплицироваться, а затем вы можете обновить исходный тег, и этот исходный тег будет реплицироваться.

Примечание: если вы обновите теги целевых объектов, и источник обновит источник, переопределить целевые теги. Это зависит от определенной политики IAM. т.е. если владелец изменился, вы не сможете обновить теги.

AWS S3 не имеет концепции папок, префиксы являются лишь частью имени ключа, и поэтому весь ключ имя реплицируется.

Возможные решения:

В исходной корзине вы можете установить префикс, например, «мой-источник», а затем для репликации в целевую корзину фильтр для префикса «мой-источник». Репликация S3 будет реплицировать объект в целевую корзину с префиксом «мой-источник». Таким образом, если корзина 1 имеет префикс my-source1 / object, а корзина 2 имеет префикс my-source2 / object. Затем целевое ведро покажет «папки» my-source1 и my-source2 с соответствующими объектами. Но если оба исходных сегмента имеют один и тот же префикс, тогда файлы будут отображаться в одной и той же «папке» на целевом объекте.

В качестве альтернативы вы можете использовать Lambda для изменения префикса или добавить теги, как определено выше.

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