如何将 S3 存储桶挂载为本地文件系统?
How to mount S3 bucket as local FileSystem?
我在 AWS 上的 Jupiter-notebook
上有一个 python 应用程序 运行。我将 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 库在 python 中作为 DLL 加载,我调用了一个函数:
lib.OpenFile(path/to/s3/file)
我必须将 s3
的路径传递到库 OpenFile 函数中。
如果您希望将 S3 存储桶挂载为文件系统的一部分,请使用 s3fs-fuse
https://github.com/s3fs-fuse/s3fs-fuse
这将使它成为文件系统的一部分,并且常规文件系统功能将按您预期的那样工作。
如果您的目标是 windows,则可以使用 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/
可能与这个问题不完全相关,但我敢肯定,很多用户都会来这里。
我在 AWS 上的 Jupiter-notebook
上有一个 python 应用程序 运行。我将 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 库在 python 中作为 DLL 加载,我调用了一个函数:
lib.OpenFile(path/to/s3/file)
我必须将 s3
的路径传递到库 OpenFile 函数中。
如果您希望将 S3 存储桶挂载为文件系统的一部分,请使用 s3fs-fuse
https://github.com/s3fs-fuse/s3fs-fuse
这将使它成为文件系统的一部分,并且常规文件系统功能将按您预期的那样工作。
如果您的目标是 windows,则可以使用 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/
可能与这个问题不完全相关,但我敢肯定,很多用户都会来这里。