出于天气处理的目的,我希望在 Google Cloud Storage 中自动检索每日天气预报数据。
这些文件可在公共 HTTP URL (http://dcpc-nwp.meteo.fr/openwis-user-portal/srv/en/main.home),但它们非常大(30 到 300 MB 之间)。文件大小是主要问题。
看了之前的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 数据检索到 Cloud Storage 中:https://cloud.google.com/storage/transfer/reference/rest/v1/TransferSpec#httpdata
但下载前需要知道文件的大小和md5。此选项不适用于我的情况,因为该网站不提供这些信息。
3/ 有什么想法吗?
您是否看到任何解决方案可以自动通过 HTTP 将大文件检索到我的 Cloud Storage 存储桶中?
3/ 使用 Compute Engine 实例的解决方法
由于无法使用 App Engine 或直接使用 Cloud Storage 从外部 HTTP 检索大文件,因此我使用了始终运行的 Compute Engine 实例的解决方法。
该实例定期检查是否有新的天气文件可用,下载这些文件并将其上传到 Cloud Storage 存储分区。
出于可扩展性、维护和成本原因,我更愿意仅使用无服务器服务,但希望:
- 它在新的 f1-micro Compute Engine 实例上运行良好(不需要额外的软件包,如果运行 24/7,只需 4 美元/月)
- 如果实例和存储桶位于同一区域,则从 Compute Engine 到 Google Cloud Storage 的网络流量是免费的(0 美元/月)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)