Использование Java SDK (AWS) для программного подключения S3 к EC2 в качестве файловой системы
Я пытаюсь использовать Java SDK для создания локальной файловой системы на компьютере EC2, который на самом деле будет ресурс S3
Я уже написал код для запуска машины EC2, создания групп безопасности, ключей и т. Д., Но теперь хочу смонтировать S3 поверх той машины EC2, которую я создаю с помощью java SDK. Там, кажется, нет подробного решения онлайн.
2 ответа
Во-первых, вы должны подготовить свой собственный AMI с предварительно установленным s3fs. См. https://forums.aws.amazon.com/thread.jspa?threadID=39361. Экземпляр EC2 должен быть запущен из этого пользовательского AMI.
Во-вторых, сразу после запуска экземпляра вы должны установить к нему SSH-соединение и запустить
/usr/bin/s3fs bucketname /mnt/mountpoint
Я бы порекомендовал использовать JSch
Пока есть провайдер файловой системы s3fs
построить на предохранителе. Не всегда хорошая идея пытаться смонтировать его в файловую систему. Вместо этого вы должны либо использовать инструменты командной строки s3cmd
или встроенный доступ к s3 в вашей файловой системе.
Причина, по которой я бы рекомендовал против этого, состоит в том, что s3 не является блочным устройством, в то время как остальная часть вашей файловой системы является. Все на s3 рассматривается как законченный объект. Вы не можете читать или писать в блок объекта.
Если все, что вы делаете при монтировании, - это полное копирование файлов в и из s3, монтирование файловой системы может работать достаточно хорошо. Но вы не можете запустить что-либо, что могло бы ожидать доступ на уровне блоков к файлам на этом монтировании.