kubernetes - Base64 编码正在添加一个新行
问题描述
我正在尝试在 linux 的命令行上使用 base64 对数据库字符串进行编码。
完成后,我将值添加到 kubernetes 中的密钥中,但由于不接受 db 字符串,我的应用程序无法连接到数据库。当我检查 lens 中的值时,似乎添加了一个换行符,而这在同一个秘密的类似集群中不存在
jdbc:postgresql://test.xxxxxxxx.eu-west-2.rds.amazonaws.com/test
deirdre$ echo jdbc:postgresql://test.xxxxxxxx.eu-west-2.rds.amazonaws.com/test | base64 | tr -d "\n"
amRiYzpwb3N0Z3Jlc3FsOi8vdGVzdC54eHh4eHh4eC5ldS13ZXN0LTIucmRzLmFtYXpvbmF3cy5jb20vdGVzdAo=
有什么我做错了吗?还是 / 有问题?
解决方案
问题是 base64 添加换行符是为了与具有最大线宽的旧系统兼容。您可以将 -w 0 选项添加到 base64 命令以更改行为,使其不再添加新行。
在你的例子中,这将是
echo "jdbc:postgresql://test.xxxxxxxx.eu-west-2.rds.amazonaws.com/test" | base64 -w 0
这导致
amRiYzpwb3N0Z3Jlc3FsOi8vdGVzdC54eHh4eHh4eC5ldS13ZXN0LTIucmRzLmFtYXpvbmF3cy5jb20vdGVzdAo=
编辑:
printf "%s" jdbc:postgresql://test.xxxxxxxx.eu-west-2.rds.amazonaws.com/test | base64 -w 0
produces the correct output which adds an additional newline in the base64 encoded string which is apparently required for the url to be recognized as properly ended
推荐阅读
- google-apps-script - Apps 脚本参考错误:未定义 eventCal
- json - JSON 响应无法提取变量
- javascript - 防止 Shadow DOM 中的单击和焦点事件冒泡到 DOM
- string - 如何在一行中加入两个字符串 discord bot
- java - 将对象添加到场景条件 Java3D
- flutter - 在 Flutter 中处理用户会话是否有比使用“flutter_session”或“local_storage”更好的方法,或者无法在移动设备上处理?
- asp.net-core - 通过 web.config 切换到新的应用程序版本
- python - Python 读取 JSON 文件中的多个值作为字典
- php - 每次我重新加载我的网站时,它都会在我的 JSON 文件中添加一个新用户?我怎样才能防止这种情况?
- python - 我找不到正确循环这个刽子手代码的方法