Использование 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, монтирование файловой системы может работать достаточно хорошо. Но вы не можете запустить что-либо, что могло бы ожидать доступ на уровне блоков к файлам на этом монтировании.

Другие вопросы по тегам