Сохранение файлов в amazons S3 с использованием S3FS с PHP на Red Hat Linux и перезаписывание файлов с нуля

При записи файла в S3 с использованием S3FS, если к этому файлу осуществляется доступ во время записи в него, данные в файле удаляются.

У нас был сервер Red Hat Linux, на котором мы держали продукт, который мы тестировали, когда заметили эту проблему. Когда мы решили исправить проблему, мы переместили этот продукт в экземпляр Ubuntu, и у нас больше нет этой проблемы.

Мы настроили сервер для клиента, который хотел Red Hat, и перенесли некоторый код на этот сервер, и у этого сервера теперь возникают проблемы с перезаписью.

0

Решение

Поведение, которое вы описываете, имеет смысл. Требуется немного объяснения того, как работает S3 по сравнению со стандартными томами.

Стандартный том может быть прочитан / записан ОС на уровне блоков. Несколько процессов могут получить доступ к файлу, но для предотвращения повреждения требуются некоторые блокировки.

S3 обрабатывает операции как целые файлы. Либо файл загружен целиком, либо его вообще не существует.

s3fs пытается создать интерфейс для чего-то, что не является томом, чтобы вы могли смонтировать его в файловой системе. Но под прикрытием он копирует каждый файл, к которому у вас есть доступ, в локальную файловую систему и сохраняет его во временном каталоге. Обычно вы можете выполнять целые файловые операции с s3fs (копирование, удаление и т. Д.), Но попытка открыть файл непосредственно из s3fs для блокирования операций на уровне плохо закончится.

Есть другие варианты. Если вы можете переделать свой код, чтобы извлекать и извлекать файлы из s3, это может сработать, но, похоже, вам нужно что-то более похожее на NFS.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]