Как смонтировать S3 Bucket в качестве локальной файловой системы? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть приложение Python, работающее на ноутбуке Jupyter на AWS. Я загрузил библиотеку AC в мой код 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)

Или я делаю это совершенно неправильно?

Библиотека С, которую я использую, загружается как DLL вPython и я вызываем функцию:

lib.OpenFile(path/to/s3/file)

Мне нужно передать путь к s3 в библиотечной функции OpenFile.

1 Ответ

1 голос
/ 05 ноября 2019

Если вы хотите смонтировать контейнер S3 как часть файловой системы, используйте s3fs-fuse

https://github.com/s3fs-fuse/s3fs-fuse

, который сделает его частью файловой системы,и обычные функции файловой системы будут работать так, как вы ожидаете.

...