从EC2实例本地访问Amazon S3存储桶

4 投票
1 回答
7414 浏览
提问于 2025-04-18 09:00

我有一个EC2实例和一个在同一区域的S3存储桶。这个存储桶里有一些比较大的文件(5-20MB),我的EC2实例经常用到这些文件。

我想用Python程序在我的EC2实例上打开这些文件。像这样:

file_from_s3 = open('http://s3.amazonaws.com/my-bucket-name/my-file-name')

但是,使用“http”链接远程访问文件似乎效率很低,这样的话每次我想用这个文件的时候都得把它下载到服务器上。

我想知道有没有办法让我从EC2实例本地访问S3里的文件,比如:

file_from_s3 = open('s3://my-bucket-name/my-file-name')

我自己找不到解决办法,任何帮助都非常感谢,谢谢。

1 个回答

8

无论你做什么,S3里的对象都会在后台下载到你的EC2实例中,这是无法避免的。

如果你想把存储桶里的文件当作本地文件来使用,你需要安装一些S3文件系统插件,比如FUSE的某个插件(例如:s3fs-fuse)。另外,你也可以使用boto,通过Python代码轻松访问S3里的对象。

撰写回答