我使用具有许多频道的流服务(di.fm)。每个频道都有一个我从CLI(使用mpv)流式播放的播放列表。每个播放列表中的每个URL都存储API密钥。
我想将API KEY存储在各个播放列表之外,因此,例如,如果我更改了API KEY,则不必更改每个播放列表。
我在Mac上。
1)声明export DI_KEY=""
的最佳(最安全)位置是什么?在.bashrc中,我是第一个想到的,除了将其备份到github。还有其他更好的地方来声明每次我输入bash时都会创建的env var吗?
2)在播放列表文件中,如何在URL中使用$DI_KEY
?
[playlist]
NumberOfEntries=1
File1=http://prem4.di.fm:80/00sclubhits?$DI_KEY
Title1=DI.FM - 00s Club Hits
Length1=0
Version=2
仅仅直接引用它是行不通的。
我敢肯定,这可能会在其他地方得到解答,但是在所有搜索中,我找不到任何有用的答案,尤其是问题2。
答案 0 :(得分:1)
关于在.bashrc
之外设置环境变量,您可以创建一个单独的文件来定义敏感变量,然后从.bashrc
内部获取该变量。
例如,创建文件~.my-private-variables
,将文件名添加到.gitignore
,并将行export DI_KEY="12345"
添加到此文件。然后在.bashrc
中添加以下代码块:
if [ -f ~/.my-private-variables ]; then
. ~/.my-private-variables
fi
关于播放列表文件,bash没有运行该文件,因此不会扩展环境变量。
您可以在bash开始时动态生成播放列表,如下所示:
#!/bin/bash
filename=playlist-1.pls
baseurl=http://prem4.di.fm:80
cat << EOF > $filename
[playlist]
NumberOfEntries=1
File1=${baseurl}/00sclubhits?${DI_KEY}
Title1=DI.FM - 00s Club Hits
Length1=0
Version=2
EOF
这将展开变量并将其写入文件,在本例中为playlist-1.pls
在当前工作目录中。您可以在引用播放列表目录的filename变量中添加绝对路径。
要运行此脚本,您可以创建一个名为playlist-generator
的脚本,并如上所述在.bashrc
中提供该脚本。您可以在此处添加任意数量的播放列表。