如何知道 CKAN 资源记录返回的哈希类型?



示例记录:

"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 文档说:

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

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

看源头也不能启发我。 这似乎是一个自由文本字段,所以我想上传者可以将其设置为他们想要的任何东西 但据推测,它被设计为供某人消费,因此必须进行交流。

下面是一个空字符串的示例。 s

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

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

您给出的示例是 data.gov.au 上的 ZIP 文件。我相信该站点正在运行数据推送器,其目的是下载XLS和CSV格式的数据,并将它们放入数据存储数据库中,以提供数据预览和数据API。ZIP 文件可能不由数据推送器处理,因此它会忽略它们,因此您不希望此资源具有哈希值。

  • 数据推送器:MD5源代码

  • CKANEXT-xloader:MD5

    源代码
  • CKANEXT-archiver:SHA1源代码

最新更新