我如何找出 CKAN 资源记录返回的哈希类型?

How can I find out what sort of Hash is being returned by a CKAN resource record?

Example record:

"resources": [
      {
        "cache_last_updated": null,
        "cache_url": null,
        "mimetype_inner": "",
        "hash": "9d599bcf3b8db2b5c6aea528bc37d728c856b09c",
        "description": "CSV file extracted and cleaned from source excel.",
        "format": "CSV",
        "url": "https://raw.github.com/datasets/gold-prices/master/data/data.csv",
        "created": "2017-07-18T13:16:40.728715",
        "state": "active",
        "package_id": "9cbdb9a8-b78d-449e-8342-46fb581a1e17",
        "last_modified": "2012-05-04T12:40:59.181686",
        "mimetype": "text/plain",
        "url_type": null,
        "position": 0,
        "revision_id": "007398e3-a1fc-4a31-821e-a77b9057f796",
        "size": "14502",
        "datastore_active": true,
        "id": "b9aae52b-b082-4159-b46f-7bb9c158d013",
        "resource_type": "file",
        "name": "CSV "
      }
    ],

API docs say:

key   example Notes
hash  null    Hash of the data e.g. SHA1

例如SHA1 不会让我走得太远。 如果我不知道使用什么算法计算它,我就无法检查它。

正在查看 source also doesn't enlighten me。 它似乎是一个自由文本字段,所以我想上传者可以将其设置为他们想要的任何内容 但推测它是设计供某人消费的,因此它必须被传达。

这是一个 empty string 的例子。 s

提供它的目的是供 datapusher、ckanext-xloader、ckanext-archiver 或安装的任何检查资源 URL 上的数据使用。他们选择自己的哈希函数。他们通常用它来计算数据是否已更新。

从这个意义上说,哈希字段仅供内部使用。但我猜想用户可能想做同样的事情,并且认为在该字段的值中包含哈希函数的名称是合理的。如果您想描述用例并为其中一个扩展编写 PR,我们非常欢迎您。

您给出的示例是 data.gov.au 上的一个 ZIP 文件。我认为该站点是 运行 datapusher,旨在下载 XLS 和 CSV 格式的数据并将其放入 Datastore 数据库中以提供数据预览和数据的 API。数据推送器可能不处理 ZIP 文件,因此它会忽略它们,因此您不期望此资源的哈希值。