如何解决如何通过修订删除etcd中的密钥
我想删除etcd中的密钥,而其他人将密钥放入etcd中。所以我想在删除时指定修订。如果密钥版本低于修订版本,则将其删除。否则什么也不做。
// putInfoOp returns a PUT etcd operation for Info.
func putInfoOp(info Info) (clientv3.Op,error) {
value,err := info.toJSON()
if err != nil {
return clientv3.Op{},err
}
key := KeyAdapter.Encode(info.A,info.B)
return clientv3.OpPut(key,value),nil
}
// deleteInfoOp returns a DELETE etcd operation for info.
func deleteInfoOp(info Info) clientv3.Op {
return clientv3.OpDelete(KeyAdapter.Encode(
info.A,info.B))
}
// my code
func handleinfo(info Info){
putOp,_ := putInfoOp(info)
_,rev,err := etcdutil.DoOpsInOneTxnWithRetry(cli,putOp)
dosomething()
delOp,_ := deleteInfoOp(Info) // how to delete it with rev?
}
解决方法
根据库文档,仅为get
op启用专长
https://github.com/etcd-io/etcd/blob/76e769ce95ca0d4d0e3486712d96956260db04b8/clientv3/op.go#L231
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。