ObjectCreated: Публикация на S3 Загрузка консоли? - PullRequest
0 голосов
/ 22 ноября 2018

Мой S3 Lambda Event слушатель видит только ObjectCreated:Put события, когда файл загружается через консоль S3.Это как для новых файлов, так и для перезаписи существующих файлов.Это ожидаемое поведение?

Похоже, что при загрузке нового файла должно генерироваться ObjectCreated:Post в соответствии с POST == Create, PUT == нормой обновления.

1 Ответ

0 голосов
/ 22 ноября 2018

S3 имеет 4 API для создания объектов:

  • PUT используется для запросов, которые отправляют только необработанные байты объекта в теле HTTP-запроса.Это наиболее распространенный API, используемый для создания объектов размером до 5 ГБ.
  • POST использует специально созданные HTML-формы с атрибутами, аутентификацией и файлом как частьmultipart/form-data Тело HTTP-запроса.
  • Копирование используется, когда исходные байты поступают от существующего объекта в HTTP (который, кстати, также использует HTTP PUT в сети, но является его собственнымтип события).API копирования также используется каждый раз, когда вы редактируете метаданные существующего объекта: после сохранения в S3 объекты и их метаданные полностью неизменяемы.Консоль позволяет вам «редактировать» метаданные, но выполняет это путем копирования объекта поверх себя (что является безопасной операцией в S3, даже если управление версиями в корзине не включено, поскольку старый объект остается неизменным до создания нового объекта).удалось) при предоставлении исправленных метаданных.S3 не поддерживает перемещение или переименование - это делается с копией с последующим удалением.Максимальный размер объекта, который можно скопировать с помощью API копирования, составляет 5 ГБ.
  • Multipart , что является обязательным для создания объектов, размер которых превышает 5 ГБ, и рекомендуется для многомегабайтных объектов.Multipart может использоваться для объектов любого размера, но каждая часть (кроме последней) должна иметь размер не менее 5 МБ, поэтому она обычно не используется для небольших загрузок.Этот API-интерфейс также позволяет безопасно повторять любые неисправные детали, загружая их параллельно, и имеет несколько проверок целостности для предотвращения появления дефектов в объекте, который повторно собирается S3.Multipart также используется для копирования больших объектов

Консоль взаимодействует с S3 с использованием стандартных общедоступных API, таких же, как в SDK, и использует PUT или multipart, в зависимости от размера объекта, и Copy.для редактирования метаданных объекта, как указано выше.

Для достижения наилучших результатов всегда используйте событие s3:ObjectCreated:*, если только у вас нет особых причин не делать это.

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