我正在考虑构建大型App Engine站点的最佳方法(+ 1M网址)。
我需要在域文件的根路径中有一个sitemaps.xml文件,该文件链接到sitemap [n] .xml文件。
sitemaps.xml文件最多可链接1000个sitemap [n] .xml文件,每个sitemap [n] .xml文件最多可包含50K网址。
有没有办法用50K网址动态生成文件?
如果没有一次获取50K实体,还有其他任何方法吗?
谢谢!
PS:文件不能是静态的,因为它们必须放在域的根路径中:(
答案 0 :(得分:1)
你最好的选择是提前生成它们。也许对您的数据运行map-reduce并将每个sitemap[n].xml
存储在一个单独的数据存储区实体中的blob中。然后处理程序(从- url: /sitemap(.*)
映射)只返回相应实体的blob。
所有这些都取决于您的网址的存储和/或生成方式。
您还可以离线生成所有网址并将它们放在一个巨大的文件中。将该文件上传到blobstore以及一个文件,该文件具有该文件中每组50k URL的偏移量。在处理程序中,只需从blobstore中获取相应的50k url组。
还要意识到拥有如此庞大的站点地图可能没那么有用(关于搜索引擎优化)。
答案 1 :(得分:0)
为什么无法在app.yaml中添加条目来重定向文件所在的位置。 Robots.txt应该在根级别,但我将它保存在/ img
中- url: /robots.txt
static_files: img/robots.txt
upload: img/robots.txt
与任何抓取工具完全相同。