@allmaps/id (英语)
使用 萨摩亚-1 从字符串中生成ID的算法,从UUID中随机生成ID,从JSON对象中生成校验和.
Allmaps使用此模块从IIIF URI创建ID. 例如:
- 考虑到以下列出的URL: https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/ (中文(简体) ), (中文(简体) ),
- 产出
generateId函数将是:6f5a7b547c8f6fbe, (中文(简体) ), - 我们可以用这个身份来查找 地理参考注释 使用 Allmaps API 的地理参考地图: https://annotations.allmaps.org/manifests/6f5a7b547c8f6fbe 互联网档案馆的存檔,存档日期2014-12-21。 。 。 .
要看到 @allmaps/ id 动作, 请查看此 可观察笔记本。 。 。 .
使用量
这是一个只在浏览器、Node.js和Cloudflare Workers中工作的无害环境管理模块.
有两种变体:
- 自动同步 (默认)——使用
SubtleCrypto.digest()财务报告和审定财务报表Crypto.randomUUID()到处都行. - 同步 (单位:千美元)
@allmaps/id/sync) ——纯-JS SHA-1执行而无外部依赖. 同步返回值 。 无法使用同步上下文时有用( 如在 Svelte 内部)$derived) (中文(简体) ).
两种变体产生相同的输出.
Async( 默认)
import { generateId } from '@allmaps/id'
const url = 'https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/'
const id = await generateId(url)
// id = '6f5a7b547c8f6fbe'
同步
import { generateId, generateChecksum } from '@allmaps/id/sync'
const url = 'https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/'
const id = generateId(url)
// id = '6f5a7b547c8f6fbe'
浏览器( 通过 CDN)
<script type="module">
import { generateId } from 'https://esm.run/@allmaps/id'
const url =
'https://orka.bibliothek.uni-kassel.de/viewer/rest/iiif/manifests/1535113582549/manifest/'
const id = await generateId(url)
console.log(id)
</script>
国 际
也可以使用 图像 CLI。 。 。 .
例如:
echo https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/ | allmaps id
许可证
麻省理工学院
API 密码
generateChecksum(obj, length)
生成 JSON 对象的校验和 .
参数
obj(单位:千美元)unknown(中文(简体) )- JSON对象.
length(单位:千美元)number | undefined(中文(简体) )- 返回的散列长度 。 散列的最大长度为40个字符.
回返
第一届 length 排序和序列化版本的 SHA-1 散列字符 obj (单位:千美元)Promise<string>) (中文(简体) ).
generateId(str, length)
使用 SHA-1 算法从字符串中生成一个ID. 由于输入相同,ID将永远不变.
参数
str(单位:千美元)string(中文(简体) )- 输入字符串
length(单位:千美元)number | undefined(中文(简体) )- 返回的散列长度 。 散列的最大长度为40个字符. 默认长度为16.
回返
第一届 length 字符 str (单位:千美元)Promise<string>) (中文(简体) ).
generateRandomId(length)
生成随机ID.
参数
length(单位:千美元)number | undefined(中文(简体) )- 返回的散列长度 。 散列的最大长度为40个字符.
回返
第一届 length 任意 UUID 的 SHA-1 散列字符(Promise<string>) (中文(简体) ).
generateChecksum(obj, length)
生成 JSON 对象的校验和 .
参数
obj(单位:千美元)unknown(中文(简体) )- JSON对象.
length(单位:千美元)number | undefined(中文(简体) )- 返回的散列长度 。 散列的最大长度为40个字符.
回返
第一届 length 排序和序列化版本的 SHA-1 散列字符 obj (单位:千美元)string) (中文(简体) ).
generateId(str, length)
使用 SHA-1 算法从字符串中生成一个ID. 由于输入相同,ID将永远不变.
参数
str(单位:千美元)string(中文(简体) )- 输入字符串
length(单位:千美元)number | undefined(中文(简体) )- 返回的散列长度 。 散列的最大长度为40个字符. 默认长度为16.
回返
第一届 length 字符 str (单位:千美元)string) (中文(简体) ).
generateRandomId(length)
生成随机ID.
参数
length(单位:千美元)number | undefined(中文(简体) )- 返回的散列长度 。 散列的最大长度为40个字符.
回返
第一届 length 任意 UUID 的 SHA-1 散列字符(string) (中文(简体) ).