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:*
, если только у вас нет особых причин не делать это.