我有一个python应用程序在AWS的Jupiter-notebook
上运行。我将一个C-library
加载到我的python代码中,它需要一个文件的路径。我想从S3存储桶访问这个文件。
我尝试使用s3fs:
s3 = s3fs.S3FileSystem(anon=False)
使用s3.ls('..')
列出了我所有的bucket文件...到目前为止还可以。但是,我正在使用的库实际上应该在我没有访问权限的地方使用s3变量。我只能传递到c库的路径。
有没有一种方法可以挂载s3 bucket,在这种方法中,我不必调用s3.open()
,而可以只调用open(/path/to/s3)
,如果s3 bucket隐藏在某个地方,它实际上是作为本地文件系统挂载的?
我认为它应该像这样工作,而不使用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)
还是我做错了
iam使用的c库在python中作为DLL加载,并且我调用一个函数:
lib.OpenFile(path/to/s3/file)
我必须将s3
的路径传递给库OpenFile函数。
3条答案
按热度按时间sczxawaw1#
如果目标是windows,则可以将rclone与winfsp一起使用,以将S3存储桶装载为本地FileSystem
简化步骤如下:
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/
z18hc3ub2#
多年后aws为linux here的s3引入了挂载点文件客户端
w9apscun3#
如果您希望将S3存储桶作为文件系统的一部分挂载,则使用s3 fs-fuse
https://github.com/s3fs-fuse/s3fs-fuse
这将使它成为文件系统的一部分,常规的文件系统功能将如您所期望的那样工作。