Как смонтировать ведро S3 как локальную файловую систему?
У меня есть приложение Python, работающее на Jupiter-notebook
на AWS. Я загрузилC-library
в мой код Python, который ожидает путь к файлу. Я хочу получить доступ к этому файлу из корзины S3.
Пробовал использовать s3fs:
s3 = s3fs.S3FileSystem(anon=False)
с помощью s3.ls('..')
перечисляет все мои файлы ведра... пока это нормально. Но библиотека, которую я использую, должна фактически использовать переменную s3 внутри, к которой у меня нет доступа. Я могу передать только путь к библиотеке c.
Есть ли способ установить ведро s3 таким образом, чтобы мне не пришлось звонить
s3.open()
, и можно просто позвонить open(/path/to/s3)
где-то спрятано ведро s3 действительно смонтировано как локальная файловая система?
Думаю так должно работать без использования s3. Поскольку я не могу изменить библиотеку, которую использую внутри, для использования переменной s3...
with s3.open("path/to/s3/file",'w') as f:
df.to_csv(f)
with open("path/to/s3/file",'w') as f:
df.to_csv(f)
Или я совершенно не так делаю?
Библиотека c, которую я использую, загружается как DLL в python, и я вызываю функцию:
lib.OpenFile(path/to/s3/file)
Я должен пройти путь к s3
в библиотеку функцию OpenFile.
3 ответа
Если вы хотите смонтировать корзину S3 как часть файловой системы, используйте s3fs-fuse
https://github.com/s3fs-fuse/s3fs-fuse
Это сделает его частью файловой системы, и обычные функции файловой системы будут работать так, как вы ожидаете.
Если вы ориентируетесь на окна , можно использовать rclone вместе с winfsp для монтирования корзины S3 как локальной файловой системы.
Упрощенные шаги:
rclone config
создать удаленный
rclone mount remote:bucket *
установить
https://github.com/rclone/rclone
https://rclone.org/
https://github.com/billziss-gh/winfsp
http://www.secfs.net/winfsp/
Возможно, это не совсем актуально для этого вопроса, но я уверен, что он будет актуален для многих пользователей, приходящих сюда.
точку монтирования — файловый клиент для s3 для Linuxспустя годы aws представляет здесь