定时保存 Bing 每日壁纸到本地和腾讯云 COS
[scode type="green"] BingWallpaper2COS：定时保存 Bing 每日壁纸（国内版+国际版）到本地，并上传到腾讯云 COS 中以便后续调用。 项目地址：[button color="success" icon="github" url="https:\/\/github.com\/angustar/BingWallpaper2COS" type=""]GitHub[/button] [button color="success" icon="code" url="https:\/\/gitee.com\/angustar/BingWallpaper2COS" type=""]Gitee[/button] [/scode] 本项目基于 Python + PHP，旨在帮助用户自动、高效地在本地和腾讯云 COS 中储存 Bing 每日壁纸，并提供用于随机调用图片的 API 。 由于 Bing 国内版和国际版的壁纸不尽相同，项目对此作出区分，将 Bing 国内版和国际版的每日壁纸存储在不同的文件夹，同时，为了保证日期的完整性，项目不对壁纸做去重处理。国内版和国际版均保留分辨率为1920x1080的版本和 UHD 版本，其中，UHD 版本分辨率不定，但要高于1920x1080。 项目主要可以实现以下功能： 保存当日的 Bing 壁纸至本地，包括分辨率为1920x1080的版本和 UHD 版本； 将分辨率为1920x1080的版本上传至腾讯云 COS，并获得图片的访问地址，可用于网站背景图等； 将相关信息写入数据库，以便后续读取； 访问myexample.com/BingWallpaper2COS时可以随机返回一张分辨率为1920x1080的图片。 部署 下载项目并进入项目文件夹： cd /www/wwwroot/myexample.com # 根据实际情况修改路径 git clone https://github.com/angustar/BingWallpaper2COS.git cd BingWallpaper2COS 安装 Python 相关依赖： pip3 install -r requirements.txt 根据configs-sample.py生成configs.py，并依据实际情况修改configs.py的相关配置： cp configs-sample.py configs.py configs.py示例如下： # -*- coding: UTF-8 -*- from qcloud_cos import CosConfig from qcloud_cos import CosS3Client from qcloud_cos import CosServiceError from qcloud_cos import CosClientError import sys import logging # 腾讯云COS配置信息 secret_id = '************************************' # 替换为用户的secret_id secret_key = '********************************' # 替换为用户的secret_key region = 'ap-shanghai' # 替换为用户的region，例如：ap-shanghai token = None # 使用临时密钥需要传入Token，默认为空,可不填 domain = None # COS的自定义源站域名或自定义CDN加速域名,结尾不要加"/", 如果使用全球加速域名, 则设置成对应的域名 Bucket = 'BucketName-APPID' # Bucket 由 BucketName-APPID 组成 # Server酱·Turbo版配置信息，用于程序执行错误时向用户发送通知 SendKey = '*********************************' 设置定时执行main.py，可以在宝塔面板的计划任务中添加一个定时任务，任务类型设定为Shell脚本，执行周期自定，每日定时执行一次即可，脚本内容如下： # 根据实际情况修改路径 cd /www/wwwroot/myexample.com/BingWallpaper2COS python3 /www/wwwroot/myexample.com/BingWallpaper2COS/main.py 项目在首次运行成功后会自动生成Bing.db数据库文件以及BingWallpaper文件夹 ，此时本地项目的目录结构应如下所示： │ Bing.db │ configs.py │ index.php │ main.py │ requirements.txt │ ├─BingWallpaper │ ├─domestic │ │ └─2021 │ │ └─08 │ │ 20210801_domestic@1920x1080.jpg │ │ 20210801_domestic@UHD.jpg │ │ │ └─international │ └─2021 │ └─08 │ 20210801_international@1920x1080.jpg │ 20210801_international@UHD.jpg │ └─__pycache__ configs.cpython-37.pyc 腾讯云 COS 的目录结构应如下所示： ├─domestic │ └─2021 │ └─08 │ 20210801_domestic@1920x1080.jpg │ └─international └─2021 └─08 20210801_international@1920x1080.jpg 调用 API 访问myexample.com/BingWallpaper2COS，可以随机返回一张图片，其分辨率为1920x1080。 出于存储空间费用和外网下行流量费用的考虑，本项目并未将 UHD 版本的图片上传至腾讯云 COS、图片的访问地址写入数据库 ，仅本地保留图片文件，若需要上传，请自行修改main.py，如需通过 API 调用，请同时修改index.php。 To Do List 为 API 添加调用参数，使其支持调用指定日期或指定版本（国内版/国际版）的图片