Вопрос или проблема
У меня есть пользователь с довольно нишевым приложением. У этого пользователя есть ПК с присоединением к Azure, работающий на Windows 11 Pro, и OneDrive настроен для резервного копирования (синхронизации) файлов в папке “Документы” в облако.
Мы обнаружили, что приложение работает прекрасно, когда ему предоставляется локальное хранилище, такое как “C:\Data”. Однако приложение не работает при использовании локального хранилища, скажем, в “Документах”, которое управляется OneDrive. Это приложение, похоже, обрабатывает свои файлы как многофайловую базу данных, и разработчик программного обеспечения настаивает на том, что OneDrive искажает файлы данных его приложения.
Здесь нет одновременного совместного использования данных – это один человек на одном компьютере, который хочет использовать OneDrive для обеспечения дополнительного уровня защиты своих файлов. В практическом смысле я вижу это как одностороннюю синхронизацию с ПК в облако.
Я проверил, что директория хранения помечена как “Всегда хранить на этом устройстве” (и я вижу зеленый круг рядом с ней и всеми ее файлами), поэтому не думаю, что “Файлы по запросу” здесь играют какую-либо роль.
Я пытаюсь понять это “OneDrive испортит мои файлы”. В данном контексте кто-нибудь может объяснить, чем хранилище, поддерживаемое OneDrive, отличается от локального хранилища, пожалуйста?
Ваш пользователь, похоже, прав. Из того, что я наблюдал на машинах, использующих OneDrive для одного домашнего пользователя с одним устройством, “синхронизированные” папки фактически хранятся в облаке, до предела хранилища OneDrive, и загружаются на локальную машину только тогда, когда они используются. Если вы отключитесь от OneDrive и посмотрите в синхронизированную папку, она будет пустой, кроме текстового файла с именем Где мои файлы.txt
. Я не думаю, что Windows Pro делает это иначе, и это одна из причин, по которым я сам не использую OneDrive.
Я думаю, что виновником здесь является Файл по запросу, который может причинить неприятности устаревшим приложениям.
Файлы по запросу экономят место на локальных компьютерах, но вы знаете, что файлы, загружаемые в OneDrive, шифруются. Это означает, что когда OneDrive получает файл для Проводника, т.е. когда пользователь нажимает на него, файл не только загружается, он загружается с шифрованием, расшифровывается на лету и помещается подготовленным для открытия клиентом.
Цель, которую выполняет OneDrive, состоит в том, что для бизнес-аккаунта вы можете контролировать, сколько времени файл может быть офлайн; после определенного времени загруженный файл не сможет быть открыт, если клиент не восстановит онлайн-соединение, чтобы снова расшифровать файл.
Ответ или решение
При сравнении локального хранения данных и хранения с использованием OneDrive, особенно в контексте специфических приложений, таких как ваше, важно учитывать несколько нюансов, которые влияют на их функциональность.
1. Природа хранения данных
Локальное хранилище (например, директория на диске C:\Data) обеспечивает прямой доступ к файлам, которые физически находятся на вашем устройстве. Вы можете взаимодействовать с ними без каких-либо ограничений, и все операции выполняются немедленно. Это критично для приложений, требующих постоянного доступа к файлам, как например базы данных, которые могут столкнуться с проблемами при попытке работы с данными, находящимися в облаке.
Хранение в OneDrive подразумевает, что файлы синхронизируются с облаком, что может привести к некоторым ограничениям. Даже если файлы находятся на локальном диске (например, в директории "Documents"), OneDrive управляет их синхронизацией. Это может вызвать задержки в доступе к данным и изменения в их обработке, что, как указывает ваш пользователь, «искажает» данные файла приложения.
2. Функциональность Files On-Demand
Files On-Demand – это функция OneDrive, позволяющая хранить определенные файлы и папки в облаке, освобождая место на локальном диске. Несмотря на то, что в вашем случае пользователь применяет опцию «Всегда хранить на этом устройстве», приложение может все равно исполнять процессы, связанные с синхронизацией, что может привести к ошибкам. При загрузке файла OneDrive сначала загружает его из облака, а затем расшифровывает и предоставляет доступ. Этот процесс может вызывать временные проблемы с доступом к данным, что может негативно сказаться на производительности приложения.
3. Подход к шифрованию
Файлы, загружаемые в OneDrive, подвергаются шифрованию. Это создает дополнительные сложности для приложений, ожидающих прямой работы с файлами без промежуточных обработок. В случае, если ваша программа требует частого доступа к файлам или их безостановочного чтения и записи, шифрование и условия синхронизации OneDrive могут вызвать сбои в работе.
4. Практические соображения
Ваш пользователь прав в своих опасениях. Хотя OneDrive предлагает преимущества в виде резервного копирования и синхронизации данных, для специфических приложений, которые требуют строгого управления файловой системой, локальное хранение остается более надежным выбором. Приложения, перешедшие на использование облачных сервисов, могут столкнуться с проблемами, связанными с задержками и синхронизацией, что недопустимо для их корректной работы.
Заключение
Таким образом, хотя OneDrive и обеспечивает дополнительные уровни защиты и удобство для большинства пользователей, всегда следует учитывать специфику приложений, работающих с данными. В случае узкоспециализированных программ, работающих с файлами как с частью базы данных, полное локальное хранилище может оказаться более безопасным и подходящим решением.
Совет: при использовании таких приложений, возможно, стоит рассмотреть вариант локального хранения данных без использования облака, чтобы избежать потенциальных потерь или искажений данных.