При записи файла в S3 с использованием S3FS, если к этому файлу осуществляется доступ во время записи в него, данные в файле удаляются.
У нас был сервер Red Hat Linux, на котором мы держали продукт, который мы тестировали, когда заметили эту проблему. Когда мы решили исправить проблему, мы переместили этот продукт в экземпляр Ubuntu, и у нас больше нет этой проблемы.
Мы настроили сервер для клиента, который хотел Red Hat, и перенесли некоторый код на этот сервер, и у этого сервера теперь возникают проблемы с перезаписью.
Поведение, которое вы описываете, имеет смысл. Требуется немного объяснения того, как работает S3 по сравнению со стандартными томами.
Стандартный том может быть прочитан / записан ОС на уровне блоков. Несколько процессов могут получить доступ к файлу, но для предотвращения повреждения требуются некоторые блокировки.
S3 обрабатывает операции как целые файлы. Либо файл загружен целиком, либо его вообще не существует.
s3fs пытается создать интерфейс для чего-то, что не является томом, чтобы вы могли смонтировать его в файловой системе. Но под прикрытием он копирует каждый файл, к которому у вас есть доступ, в локальную файловую систему и сохраняет его во временном каталоге. Обычно вы можете выполнять целые файловые операции с s3fs (копирование, удаление и т. Д.), Но попытка открыть файл непосредственно из s3fs для блокирования операций на уровне плохо закончится.
Есть другие варианты. Если вы можете переделать свой код, чтобы извлекать и извлекать файлы из s3, это может сработать, но, похоже, вам нужно что-то более похожее на NFS.
Других решений пока нет …