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

Posted

技术标签:

【中文标题】从 EC2 实例本地访问 Amazon S3 存储桶【英文标题】:Local access to Amazon S3 Bucket from EC2 instance 【发布时间】:2014-07-28 22:53:24 【问题描述】:

我在同一区域有一个 EC2 实例和一个 S3 存储桶。存储桶包含我的 EC2 实例经常使用的相当大 (5-20mb) 的文件。

我想以编程方式打开我的 EC2 实例上的文件(使用 python)。像这样:

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

但是使用“http” URL 远程访问文件似乎效率非常低,这肯定意味着每次我想使用它时都将文件下载到服务器。

我想知道的是,有没有一种方法可以从我的 EC2 实例本地访问 S3 文件,例如:

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

我自己找不到解决方案,如果有任何帮助,将不胜感激,谢谢。

【问题讨论】:

你是如何获取文件的 url 的?我正在尝试做类似***.com/questions/40540258/… 的事情并且很好奇。 【参考方案1】:

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

如果您想将存储桶中的文件视为本地文件,您需要为 FUSE 安装多个 S3 文件系统插件中的任何一个(例如:s3fs-fuse)。或者,您可以使用 boto 通过 python 代码轻松访问 S3 对象。

【讨论】:

以上是关于从 EC2 实例本地访问 Amazon S3 存储桶的主要内容,如果未能解决你的问题,请参考以下文章

django staticfiles amazon S3 的问题

来自 EC2 实例的 S3 完全访问配置 [重复]

如何将文件从远程服务器传输到我的 Amazon S3 实例?

AWS S3 存储桶策略:如何授予对 EC2 实例的访问权限?

如何通过 PHP SDK 在 Amazon S3 存储桶下创建文件夹?

将 Amazon EC2 EBS Ubuntu 迁移到 Microsoft Azure