我的API服务器的磁盘空间(500MB)和内存(1GB)非常有限。它获得的API调用之一是接收文件。消费者调用API并传递要下载的URL。如何使用curl将文件从一台服务器流式传输到另一台服务器(受限服务器资源)
我的服务器的“目标”是将此文件上传到Amazon S3。不幸的是,我不能要求消费者直接将文件上传到S3(部分要求)。
问题是,有时候那些大文件(10GB)并将它们保存到磁盘,然后将其上传到S3不是一个选项(500MB磁盘空间限制)。
我的问题是,如何使用curl Linux程序将文件从输入url“管道化”到S3?
注意:我可以通过不同的方式管它,但是,它首先尝试下载整个文件并失败,或者我遇到了内存错误和卷曲退出。我的猜测是,下载速度比上传快得多,所以当我获得10GB文件时,管道缓冲区/内存会增加并爆炸(服务器上的1GB内存)。
有没有办法实现我正在尝试使用卷曲和管道做的事情?
谢谢 - 杰克
你的服务器是如何实现的?大多数编程语言应该允许你在代码中“流入/流出”,这样你一次就不会在内存中留下太多内容。如果这不是一个选项,那么你最好的选择可能是向实例添加一个适中的EBS卷(比如说100GB)并将其用作临时登台区域。 – stdunbar
@stdunbar - 我不想进入太多的内部细节,我更喜欢“调用”卷曲并完成这项工作。如果可行,太棒了!如果不是,我将不得不采取其他方式,我会采纳你的建议。泰 – Joe