我想从互联网上下载多个大文件(特别是从PushShift网站上的Reddit每月提交的文件)到S3存储桶中。我通过SSH进入EC2实例,并正在运行Jupyter笔记本。
理想情况下,我希望能够在EC2实例的Jupyter笔记本中编写Python脚本,该脚本可以从Internet下载文件,然后将其推送到S3存储桶。我将如何去做?
答案 0 :(得分:2)
不可能“将数据从Internet下载到Amazon S3”。
Amazon S3是对象存储服务。您可以将数据上传到S3并从S3下载数据,但是无法告诉S3从其他位置下载数据并将其存储。
您将需要一个运行 somewhere 的程序,该程序会从Internet获取数据,然后将其上传(创建对象)到Amazon S3中。这样的程序可能足够聪明,可以通过在内存中下载内容然后将其发送到S3来将数据“流式传输”到S3,而不必在两者之间保存到磁盘,但是您需要编写该代码。
关于此类程序的“运行位置”,将这样的代码作为AWS Lambda函数或与Amazon S3存储桶位于同一区域的Amazon EC2实例运行是最有效的。
由于您正在Amazon EC2实例上运行Jupyter笔记本,因此将文件下载到本地存储,然后再将其上传到S3是最简单的。