我正在寻找一种解决方案,该方法如何以有效的方式将多个文件从FTP读取到Google CloudStorage。每个文件大小为3-5 GB,文件大小为100-200。
我找到了下一个解决方案:使用GAE实例读取文件。
有什么想法我还能尝试吗?
答案 0 :(得分:0)
最好的方法是使用gsutil compose
将Google Cloud parallel uploads用于Cloud Storage。您可以尝试以下操作:
gsutil -o GSUtil:parallel_composite_upload_threshold=150M cp bigfile gs://your-bucket
基本上:
请记住,这需要在文档中进行权衡:
使用并行复合上传会在上传之间进行权衡 性能和下载配置:如果启用并行 复合上传,您的上传将运行得更快,但有人会需要 在每台机器上安装已编译的crcmod gsutil或其他Python应用程序下载对象的位置。 请注意,对于此类上载,需要crcmod才能下载 不管并行复合上传选项是打开还是打开 不。对于某些发行版,这很容易(例如,它已预先安装 在macOS上),但在其他情况下,某些用户发现很难。
如果您无法使用gsutil
并且无法在FTP服务器上安装Cloud Storage SDK,则可以在VM中下载文件并在此VM中运行Cloud Storage SDK或gsutil
App Engine Standard不允许写入磁盘。因此,您上传的所有文件都将存储在memory上,直到将它们上传到Cloud Storage。因此,在这种情况下,我认为这样做不方便。
App Engine Flexible确实允许写入磁盘。这是一个ephemeral磁盘,重新启动后,该磁盘的内容将被删除,并且每周重新启动。但是您不会利用负载均衡器和实例的自动伸缩功能。
在这种情况下,我认为最好的方法是使用Google Cloud preemptible VM。现在,即使此虚拟机最多只能使用一天,但它们的运行价格比普通虚拟机低。一旦它们转到get terminated,您就可以检查哪些文件已上传到存储,并在新的可抢占VM中恢复工作量。您还可以使用大量并行运行的此类VM,以加快下载和上传过程。