出于天气处理的目的,我希望自动检索Google云端存储中的每日天气预报数据.
这些文件在公共HTTP URL(http://dcpc-nwp.meteo.fr/openwis-user-portal/srv/en/main.home)上可用,但它们非常大(在30到300兆字节之间).文件大小是主要问题.
在查看以前的stackoverflow主题之后,我尝试了两种不成功的方法:
1 /首次尝试通过Google App Engine中的urlfetch
from google.appengine.api import urlfetch url = "http://dcpc-nwp.meteo.fr/servic..." result = urlfetch.fetch(url) [...] # Code to save in a Google Cloud Storage bucket
但是我在urlfetch行上收到以下错误消息:
DeadlineExceededError:等待来自URL的HTTP响应时超过截止时间
2 /通过云存储转移服务进行第二次尝试
根据文档,可以通过Cloud Storage Transfert Service直接将HTTP数据检索到云存储中:
https://cloud.google.com/storage/transfer/reference/rest/v1/TransferSpec#httpdata
但是在下载之前它需要文件的大小和md5.此选项在我的情况下不起作用,因为该网站不提供这些信息.
3 /有什么想法吗?
您是否看到任何解决方案可以自动将HTTP上的大文件检索到我的云存储桶中?
最佳答案 3 /使用Compute Engine实例的变通方法
由于无法使用App Engine或直接使用云存储从外部HTTP检索大型文件,因此我使用了一个始终运行的Compute Engine实例的变通方法.
此实例会定期检查新的天气文件是否可用,下载并将其上载到云存储桶.
出于可扩展性,维护和成本原因,我宁愿只使用无服务器服务,但希望:
>它适用于新的f1-micro计算引擎实例(无需额外包装,如果全天候运行则仅需4美元/月)
>如果实例和存储桶位于同一区域(0美元/月),则从计算引擎到Google云存储的网络流量是免费的