树莓派使用百度网盘

https://github.com/qjfoidnh/BaiduPCS-Go

Chrome 用户获取BDUSS

  • 按下F12
  • 切换到Application
  • 在菜单选项中找到Cookie 选项
  • 在打开的下拉菜单中选择pan.baidu.com
  • 之后在右侧的Cookie列表中找到BDUSS
  • 复制BDUSS项所对应的 Value 即可得到可用的BDUSS.
BaiduPCS-Go login -bduss=<BDUSS>
BaiduPCS-Go download <网盘文件或目录的路径1> <文件或目录2> <文件或目录3> ...
BaiduPCS-Go d <网盘文件或目录的路径1> <文件或目录2> <文件或目录3> ...

密码保护:面板

此内容受密码保护。如需查阅,请在下列字段中输入您的密码。

树莓派开机自动运行streamlit

如果树莓派没有连接显示器,可能会出现添加了启动文件后,开机不会自动启动的问题,此时需要修改/boot/config.txt文件,

sudo nano /boot/config.txt


找到hdmi_force_hotplug=1这一行,把前面的#号删除掉
创建一个服务文件:打开一个文本编辑器,创建一个新的服务文件,比如streamlit.service。
编辑服务文件:在服务文件中,输入以下内容:

[Unit]
Description=Streamlit App

[Service]
ExecStart=/home/pi/.local/bin/streamlit run /home/pi/下载/my_login_main.py
WorkingDirectory=/home/pi/下载
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

请确保将/path/to/your/streamlit/app替换为你实际的Streamlit应用程序所在的路径,将your_app.py替换为你的应用程序文件名。将<your_username>替换为你的用户名。
保存服务文件:保存服务文件,并将其命名为streamlit.service。
将服务文件移动到系统服务目录:打开终端,并使用以下命令将服务文件移动到系统服务目录:

sudo mv streamlit.service /etc/systemd/system/
启用和启动服务:在终端中使用以下命令启用和启动服务:

sudo systemctl enable streamlit.service
sudo systemctl start streamlit.service
验证服务状态:使用以下命令验证服务是否正在运行:

sudo systemctl status streamlit.service
如果服务正在运行,你应该能够看到"active (running)"的状态。
请注意,这些步骤适用于基于systemd的Linux发行版,如Ubuntu。

为streamlit提供登录界面

准备工作

pip install streamlit-authenticator

创建 YAML 文件:config.yaml

credentials:
  usernames:
    liba001:
      email: jsmith@gmail.com
      name: John Smith
      password: abc # To be replaced with hashed password
    liba002:
      email: rbriggs@gmail.com
      name: Rebecca Briggs
      password: def # To be replaced with hashed password
cookie:
  expiry_days: 365
  key: random_signature_key # Must be string
  name: random_cookie_name
preauthorized:
  emails:
  - melsby@gmail.com

使用 Hasher 模块将纯文本密码转换为哈希密码:

import streamlit_authenticator as stauth
hashed_passwords = stauth.Hasher(['abc', 'def']).generate()
print(hashed_passwords)

将 YAML 文件中的纯文本密码替换为生成的哈希密码

开始主程序

import yaml
from yaml.loader import SafeLoader
with open('config.yaml') as file:
    config = yaml.load(file, Loader=SafeLoader)

authenticator = Authenticate(
    config['credentials'],
    config['cookie']['name'],
    config['cookie']['key'],
    config['cookie']['expiry_days'],
    config['preauthorized']
)
name, authentication_status, username = authenticator.login('Login', 'main')

if authentication_status:
    authenticator.logout('Logout', 'main')
    st.write(f'Welcome *{name}*')
    st.title('Some content')
elif authentication_status == False:
    st.error('Username/password is incorrect')
elif authentication_status == None:
    st.warning('Please enter your username and password')