我正在寻找一个解决方案,如何读取多个文件从FTP到谷歌CloudStorage在一个有效的方式。每个文件大小为3-5 GB,文件量为100-200。
我找到了下一个解决方案:使用GAE实例读取文件。
你知道我还能尝试什么吗?
发布于 2019-01-23 17:38:37
最好的方法是使用gsutil compose将谷歌云parallel uploads用于云存储。您可以使用以下命令进行尝试:
gsutil -o GSUtil:parallel_composite_upload_threshold=150M cp bigfile gs://your-bucket基本上:
请记住,这在文档中描述了一种权衡:
使用并行复合上传的
提供了上传性能和下载配置之间的折衷:如果你启用并行复合上传,你的上传会运行得更快,但有人需要在每台机器上安装编译的crcmod,其中对象由gsutil或其他Python应用程序下载。请注意,对于此类上传,无论是否启用了并行复合上传选项,都需要crcmod进行下载。对于一些发行版来说,这很容易(例如,它预装在macOS上),但在其他情况下,一些用户会发现这很困难。
如果你不能使用gsutil并且你不能在你的FTP服务器上安装云存储SDK,你可以在一个虚拟机中下载这些文件并在这个虚拟机中运行云存储SDK或gsutil。
App Engine Standard不允许写入磁盘。因此,您上传的任何文件都将存储在memory上,直到您将其上传到云存储。所以我认为这在这种情况下是不方便的。
App Engine Flexible确实允许写入磁盘。这是一个ephemeral磁盘,一旦它重新启动,磁盘get的内容就会被删除,并且每周都会重新启动。但是你不会利用负载均衡器和实例的自动伸缩。
在这种情况下,我认为最好的方法是使用Google Cloud preemptible VM。现在,尽管这种虚拟机最多只能存活一天,但它们的价格比普通虚拟机要低。一旦它们转到get terminated,您就可以检查哪些文件已上载到存储,并在新的可抢占虚拟机中恢复您的工作负载。您还可以使用大量这样的虚拟机并行工作,以加快下载和上传过程。
https://stackoverflow.com/questions/54300941
复制相似问题