DNSLink使用DNS TXT记录将域名(如ipfs.io
)映射到IPFS地址。因为您可以编辑DNS记录,所以可以使用它们始终指向IPFS中对象的最新版本(请记住,如果修改对象,IPFS对象的地址会更改)。由于DNSLink使用DNS记录,因此它生成的名称通常也很容易键入和读取。
DNSLink地址看起来像IPNS地址,但它使用域名代替哈希公钥:
/ipns/ipfs.io
就像普通的IPFS地址一样,它们可以包含指向其他文件的链接:
/ipns/ipfs.io/media/
当IPFS客户端或节点尝试解析该地址时,它会查找ipfs.io
包含以下内容的TXT
记录:
dnslink=/ipfs/<CID for your content here>
例如,如果您查找ipfs.io
DNS记录,您将看到其DNSLink条目:
$ dig +noall +answer TXT ipfs.io
ipfs.io. 59 IN TXT "dnslink=/ipfs/QmYNQJoKGNHTpPxCBPh9KkDpaExgd2duMa3aF6ytMpHdao"
基于此,通过地址:
/ipns/ipfs.io/media/
会得到这个块:
/ipfs/QmYNQJoKGNHTpPxCBPh9KkDpaExgd2duMa3aF6ytMpHdao/media/
通过子域发布
您还可以使用名为_dnslink
的特殊子域发布DNS链接记录。当您希望提高自动设置的安全性或将对DNS链接记录的控制权委派给第三方而不想放弃对原始DNS区域的完全控制时,这非常有用。
例如,docs.ipfs.io
没有TXT记录,但页面仍然加载,因为存在TXT记录_dnslink.docs.ipfs.io
:
$ dig +noall +answer TXT _dnslink.docs.ipfs.io
_dnslink.docs.ipfs.io. 34 IN TXT "dnslink=/ipfs/QmeveuwF5wWBSgUXLG6p1oxF3GKkgjEnhA6AAwHUoVsx6E"