Я создаю фреймворк для управления файлами между вычислительными машинами на основе их ролей. Мне удалось найти много информации об управлении самими вычислительными движками, но ничего о том, как получить к ним доступ для управления файлами.
Как получить удаленный доступ к файловой системе Google Compute VM с помощью Java API?
Ответы:
Не существует Google API для чтения и записи в файловые системы экземпляра из-за пределов экземпляра. Вам нужно будет запустить службу на экземпляре (ftp, sftp, что угодно), если вам нужен внешний доступ к его файловой системе.
Fratzke, прежде всего, ваш вопрос неполный, какую платформу вы используете для экземпляров вычислительного движка, вам нужен доступ только для чтения?
Обратите внимание, что если вы хотите, чтобы диск сохраняемости был общим для многих экземпляров вычислительного ядра, вы можете сделать это только в режиме только для чтения. В документации Google четко указано, что:
Постоянный диск можно подключить к нескольким экземплярам. Однако если вы подключаете постоянный диск к нескольким экземплярам, все экземпляры должны подключать постоянный диск в режиме только для чтения. Невозможно подключить постоянный диск к нескольким экземплярам в режиме чтения-записи.
Однако вы можете обмениваться файлами между несколькими экземплярами с помощью управляемых служб, таких как облачное хранилище Google, облачное хранилище данных Google и т. д. Ответ на аналогичный вопрос уже есть на SO. Обратитесь к этим ссылкам:
Общий доступ к постоянному диску между виртуальными машинами Google Compute Engine
Изменить:
Если вы хотите удаленно получить доступ к файловой системе в нескольких экземплярах с помощью JAVA, они должны сделать файловую систему доступной с помощью службы. Такой сервис обычно является фоновым заданием, которое обрабатывает входящие запросы и возвращает ответ, например. для аутентификации, авторизации, чтения и записи. Спецификация шаблона запроса/ответа называется протоколом, например. NFS в UNIX/LINUX. Вы можете написать своего собственного поставщика файловых служб и запустить его на экземплярах. В качестве транспортного уровня для таких целей могут использоваться сокеты (TCP/IP). хорошим транспортным уровнем будет протокол http, например. со спокойным обслуживанием.
Редактировать - 2
Другая возможность заключается в использовании sshfs, монтировании файловой системы на каждом экземпляре и использовании их в коде Java в качестве смонтированной сети. общий привод.
Надеюсь, это поможет вам ... С уважением.