14、资源标识符:从生成到存储的全面解析

资源标识符:从生成到存储的全面解析

1. 资源标识符概述

在资源管理中,我们常常需要为资源分配唯一的标识符。例如,像 books/AHM6A83HENMP~ 这样的标识符,它可以有不同的表现形式,如使用小写字母和连字符来提高可读性,像 books/ahm6a83henmp~ books/ahm6-a83h-enmp~ 。在某些情况下,我们需要全局唯一的标识符,其数量应至少与标准 UUID(通用唯一标识符)相当。UUID 是一个 128 位的 ID,由 32 个十六进制数字表示,其中 6 位用于存储 ID 的元数据,剩下 122 位作为标识符的值。使用 Crockford 的 Base32 编码,大约需要 24 个字符来表示 120 位的标识符,再加上一个校验位,总共 25 个字符,可能会得到类似 books/64s36d-1n6rv-kge9g-c5h66~ 的标识符,这里的连字符是可选的,且字母大小写不敏感。此外,为了区分标识符和别名,我们可能会在标识符前加一个 “0” 字符。

2. 标识符的生成
2.1 生成者的选择

在生成标识符时,首先要考虑由谁来创建这些标识符。允许 API 用户选择自己的标识符是非常危险的,应该避免,原因如下:
- ID 冲突问题 :由于标识符具有永久性,不能被重复使用,当用户想要重新创建一个资源时,可能会收到 ID 冲突的错误消息,即使他们确定该 ID 的资源现在不存在,但它在过去曾被使用过。而且人类不擅长从给定集合中随机选择值,这会增加冲突的可能性。 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值