为何我的Authorization请求头无需Bearer?curl获取Singularity镜像清单异常
问题原因与操作修正
先给你说清楚这个反常识现象的核心:
- 你第一个命令
curl -H "Authorization :"其实就是发送了一个空的、格式无效的Authorization请求头,Singularity镜像仓库的服务器会直接忽略这个无效头,把你当成匿名用户处理。如果这个镜像本身是公开可访问的,自然就能正常拿到manifest。 - 而第二个命令
curl -H "Authorization : Bearer "是发送了一个格式错误的Bearer认证头——Bearer后面没有填实际的token值,服务器会觉得你在尝试身份认证,但拿的是无效凭证,所以直接拒绝请求,导致拿不到manifest。
你的操作问题主要有两点:
- 如果是公开镜像,完全没必要加Authorization头,直接用
curl <镜像仓库地址>就能获取;如果是私有镜像,你得在Bearer后面补上有效的认证token,正确格式是curl -H "Authorization: Bearer 你的有效token字符串"(冒号后可以加空格,但token绝对不能空)。 - 请求头格式可以更规范,
Authorization:后面的空格不影响功能,但关键是要么不加这个头(匿名访问),要么就提供完整有效的认证内容。
内容的提问来源于stack exchange,提问作者Akash H R
相关产品推荐
相关产品推荐

