Как S3 присваивает метку времени при загрузке?

У нас есть процесс загрузки файлов на S3. На самом деле он косвенный. Мы используем Amazon Elastic MapReduce (EMR), а Hadoop фиксирует файлы в S3 из множества разных узлов задач. Затем, после успешного завершения этого задания Hadoop, другая часть процесса использует FileSystem.createNewFile() Hadoop для создания некоторых файлов из главного узла.

Файлы, созданные на этих различных машинах, имеют временные метки в S3. Мы предполагаем, что временные метки файлов, зафиксированных на узлах задач, предшествуют файлам, созданным на главном узле.

Я считаю, что иногда это неверно, но почему?

Что назначает временную метку файлу S3? Это клиент Amazon EMR Hadoop или какая-то машина S3?

Если у меня есть две машины, выполняющие загрузку на S3, чьи локальные часы отличаются на 30 минут, будут ли метки времени отличаться друг от друга на 30 минут?


person dfrankow    schedule 30.05.2013    source источник


Ответы (2)


Вы не можете самостоятельно установить значения Last-Modified. S3 решает их:

https://forums.aws.amazon.com/thread.jspa?messageID=209241

person sethwm    schedule 07.06.2013
comment
Так что, предположительно, это какой-то сервер S3, но для каждого файла он может быть разным. - person dfrankow; 28.06.2013
comment
Если я правильно понял ваш комментарий, то да. Вы не можете контролировать, на какой сервер вы попали, или точное значение часов этого сервера. - person sethwm; 29.06.2013

Единственная отметка времени в S3 — это метаданные «Последнее изменение». Я считаю, что дата/время последнего изменения обновляются самой системой S3 и отражают время, когда файл полностью завершил загрузку на S3 (S3 не будет отображать незавершенные передачи).

Таким образом, не имеет значения, с какого узла вы загружаете файл, временная метка «последнее изменение» на S3 должна быть одинаковой, когда вы указываете ее на S3.

person Suman    schedule 04.06.2013
comment
Это то же самое, когда я перечисляю его, но когда я загружаю два файла в порядке A, B, иногда метки времени показывают порядок B, A. Итак, поскольку в S3 задействовано несколько компьютеров, мне интересно, клиент или сервер определяет метку времени. - person dfrankow; 05.06.2013