首页
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
更多
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
Search
1
文档内容搜索哪家强? 15款文件搜索软件横向评测
13 阅读
2
常见系统部署(1)
12 阅读
3
makfile 知识汇总
10 阅读
4
Verilog-AMS Verilog-A介绍
7 阅读
5
欢迎使用 Typecho
5 阅读
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
登录
Search
标签搜索
python
PyQT
systemverilog
Alist
Docker
cadence
sv
webdav
vscode
cpp
upf
ESL
TLM
浏览器
virtuoso
tsmc8rf
TSMC
CXL
PCIE
Yosys
bennyhe
累计撰写
46
篇文章
累计收到
8
条评论
首页
栏目
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
页面
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
搜索到
46
篇与
的结果
2025-05-29
常见系统部署(2)
接上篇。5 个人相册系统部署自建私有云相册:Docker一键部署Immich,照片视频备份利器前言随着人们手机、PC、平板等电子产品多样,我们拍摄和保存的照片和视频数量也在不断增加。如何高效地管理和备份这些珍贵的记忆成为了一个重要的问题。传统的云备份虽然方便,但受限于云空间大小和隐私保护的问题。而私有云相册则成为了一个理想的解决方案,其中开源的Immich更是以其强大的功能和易用性脱颖而出。今天星哥将介绍如何在云服务器或NAS上利用Docker一键部署Immich,打造一个属于自己的私有云相册。ImmichImmich是一款基于开源技术的私有云相册管理工具,旨在提供快速、自动化的照片和视频备份功能。其特点包括:开源地址:https://github.com/immich-app/immich 目前已有 55K+的star数量官方地址:https://immich.app/Immich 私有云相册的一些特性多平台支持:提供了移动端和 Web 网页端版本,可以在任何设备上随时访问相册。自动备份: 和 iCloud、谷歌相册 一样,Immich 支持后台自动备份照片和视频。选择性备份:支持备份指定的相册,而不必备份所有的照片和视频。高级搜索功能:用户可以根据元数据、对象、人脸等条件进行搜索,轻松找到照片。安全性: Immich 完全开源,且数据存储在你自己的服务器上。数据安全可控,同时还支持 OAuth 进行身份验证。多用户支持和分享: Immich 支持多用户,并允许用户创建共享相册,与朋友、家人或合作伙伴分享照片和视频。地理位置信息: 应用程序提供了地图视图,允许用户查看和浏览地理位置信息,以及在地图上查看媒体内容。人脸识别和聚合: Immich 可识别人脸并进行聚合,使用户能够更轻松地组织和查找他们的照片。离线支持: 移动端应用程序提供离线支持,允许在没有网络的情况下查看照片和视频。功能特性拥有自己的 iPhone、Android 应用,只需要在移动应用中填入服务器段的 API 地址,即可使用,两者功能有少许不同:特征移动应用网页上传和查看视频和照片✅✅打开应用程序时自动备份✅❌用于备份的选择性相册✅❌将照片和视频下载到本地设备✅✅多用户支持✅✅相册和共享相簿✅✅可擦洗/可拖动的滚动条✅✅支持RAW(HEIC,HEIF,DNG,APPLE ProRaw)✅✅元数据视图(EXIF、地图)✅✅按元数据、对象和图像标签搜索✅❌管理功能(用户管理)❌✅后台备份✅❌虚拟滚动✅✅OAuth 支持✅✅实时照片备份和播放iOS✅用户自定义存储结构✅✅公开分享❌✅备份功能配置好服务器端,登录移动应用之后,给于相册权限,就可以备份了,支持前台备份与后台备份,使用起来非常简单,有中文界面准备工作云服务器、NAS、虚拟机等等(必须,云服务器:http://y.xgss.net/aliyun 或 https://y.xgss.net/tx)已安装Docker或Docker Compose,如果不会看看我之前的教程,或者参考官方文档。域名(非必须)Docker-compose安装 Immich1.安装Docker 和 Docker-compose省略2.下载.env文件安装 Immich 很容易,先修改配置文件 .env:mkdir -p /data/docker/immich cd /data/docker/immich wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env查看文件cat .env # You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=./library # The location where your database files are stored DB_DATA_LOCATION=./postgres # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List # TZ=Etc/UTC TZ=Asia/Shanghai # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=release # Connection secret for postgres. You should change it to a random password # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=postgres # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich把时区改成上海# TZ=Etc/UTC改成TZ=Asia/Shanghai实际上,只需要修改里面的 UPLOAD_LOCATION 部分,使用绝对路径,这是保存照片的路径。其它设置保持默认,然后就可以安装了:3.下载docker-compose.yml运行wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.ymldocker-compose up -ddocker-compose down # 关闭查看运行状态docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8afd5060a34b ghcr.io/immich-app/immich-server:release "tini -- /bin/bash s…" About a minute ago Up About a minute (healthy) 0.0.0.0:2283->2283/tcp immich_server e8a54115e963 redis:6.2-alpine "docker-entrypoint.s…" About a minute ago Up About a minute (healthy) 6379/tcp immich_redis e7ccc41993ba tensorchord/pgvecto-rs:pg14-v0.2.0 "docker-entrypoint.s…" About a minute ago Up About a minute (healthy) 5432/tcp immich_postgres ec4d59c06e34 ghcr.io/immich-app/immich-machine-learning:release "tini -- ./start.sh" About a minute ago Up About a minute (healthy) immich_machine_learning在浏览器打开:IP:2283 就可以创建用户进入 Immich 了。6 个人音乐系统部署Navidrome(项目地址:https://github.com/navidrome/navidrome)是一款开源的Web版音乐流媒体服务器,能让你通过浏览器/手机APP随时随地访问本地音乐库。它支持MP3/FLAC/WAV等主流格式,兼容Subsonic/Airsonic协议,堪称音乐发烧友的私人Spotify!多平台支持:网页端+安卓/iOS客户端全覆盖格式通吃:MP3到无损音质通通搞定智能转码:自动将高码率转成适合移动端播放的格式资源占用低:树莓派都能流畅运行元数据支持:自动匹配专辑封面和歌手信息 docker-Compose文件:version: '3' services: navidrome: image: deluan/navidrome:latest container_name: navidrome ports: - "4533:4533" volumes: - /docker/navidrome/data:/data - /你的音乐目录:/music:ro environment: - ND_ENABLETRANSCODINGCONFIG=true - ND_TRANSCODINGCACHESIZE=100MB restart: unless-stopped浏览器输入 http://服务器IP:4533,右上角Settings → Personal → Language选择简体中文,秒变中文界面!把音乐文件放进映射目录后,点击右上角扫描按钮,系统自动识别专辑信息。无损WAV文件会自动转码,手机端也能流畅播放。集成Last.fm访问 https://www.last.fm/api 创建API账户在Docker环境变量添加:ND_LASTFM_APIKEY: "你的API Key"ND_LASTFM_SECRET: "你的Shared Secret"同步Spotify歌单在Spotify开发者平台创建应用配置环境变量:ND_SPOTIFY_ID: "客户端ID"ND_SPOTIFY_SECRET: "客户端Secret"五、总结建议经过实测,Navidrome在树莓派4B上能流畅管理5万+歌曲库,手机APP播放延迟不到1秒。推荐给:• 有大量本地音乐资源的发烧友• 追求音质又不想被平台绑架的乐迷• 喜欢折腾开源项目的技术控注意事项:目前歌词支持较弱,建议搭配第三方歌词插件使用。7 个人书签系统部署宝塔桌面建立网页然后去https://github.com/helloxz/onenav 下载,解压到将config.simple.php修改为config.php并填写自己的站点信息,具体如下,修改修改的就修改我自己的。//用户名 define('USER','xiaoz'); //密码 define('PASSWORD','xiaoz.me'); //邮箱,用于后台Gravatar头像显示 define('EMAIL','337003006@qq.com'); //token参数,API需要使用 define('TOKEN','xiaoz.me'); //主题风格 define('TEMPLATE','default'); //站点信息 $site_setting = []; //站点标题 $site_setting['title'] = 'OneNav'; //文字Logo $site_setting['logo'] = 'OneNav'; //站点关键词 $site_setting['keywords'] = 'OneNav,OneNav导航,OneNav书签,开源导航,开源书签,简洁导航,云链接,个人导航,个人书签'; //站点描述 $site_setting['description'] = 'OneNav是一款使用PHP + SQLite3开发的简约导航/书签管理器,免费开源。';打开效果8 个人微博系统部署参考http://www.bennyhe.cn/index.php/archives/296/ ,安装好宝塔桌面,和docker 组件,按照这个http://www.bennyhe.cn/index.php/archives/33/ 修改docker 配置。搜索memos,然后直接安装登入效果
2025年05月29日
5 阅读
0 评论
0 点赞
2025-05-29
常见系统部署(1)
1 远程下载系统部署(1)迅雷网络问题无法正常访问 Docker 仓库,可以将镜像仓库替换为阿里云仓库:registry.cn-shenzhen.aliyuncs.com/cnk3x/xunlei:latest. 如下述命令所示:docker run -d \ --name=xunlei \ --hostname=GUDI-NAS \ --net=host \ -v /opt/xunlei/data:/xunlei/data \ -v /media/downloads:/xunlei/downloads \ --restart=unless-stopped \ --privileged \ registry.cn-shenzhen.aliyuncs.com/cnk3x/xunlei:latest接下来放行防火墙网页访问端口:firewall-cmd --zone=public --add-port=2345/tcp --permanentfirewall-cmd --reload完成配置。三、启用迅雷NAS访问 IP:2345 访问迅雷NAS网页。扫码登录:输入内测邀请码(经过测试 迅雷牛通 内测码有效):接下来就可以在手机 APP 中查看远程设备,设备名称格式为 群晖-hostname, 但是在没有下载过任何文件的情况下,使用远程设备取回云盘文件可能会出现无下载路径的情况,可以通过迅雷NAS的网页访问端先进行一次取回,接下来便可以使用远程设备功能进行云盘文件取回了。此外,使用命令 docker ps 查看当前容器运行情况。通过手机迅雷可以远程添加远程下载,但是手机迅雷有广告,可以使用内网远程,直接通过网页访问访问添加下载将127.0.0.1:2345 内网穿透到某个网址(2)aria2 aria2 是一个无图形界面下载工具,配置比较麻烦,但是也有集成aria2的gui 下载工具,比如motrix。https://motrix.app/motrix 也支持迅雷链接,bt、磁力、http下载器,windows、linux、macos都支持。安卓和ios有自己的aria2 server(有gui)工具。比如linux 中deb安装包双击安装好后的界面。远程访问可以直接打开下面网址的客户端https://aria2c.com/或者在chrome核心 浏览器安装插件aria2 explore添加 aria2 地址(3)gospeed。Gospeed 支持安装、ios、windows、linux、macos,还可以部署网页版https://gopeed.com/zh-CN可以直接安装deb 包,但是远程下载就需要使用chrome 核心的浏览器的gospeed插件内网穿透后,设置穿透后的ip 和端口即可但是手机端比如ios 没办法安装gospeed 的浏览器的插件,所以服务器端最好安装网页版的gospeed,网页版gospeed 有可运行运行程序,直接下载运行即可,然后任何设备内网穿透后直接打开网站皆可以下载2 影音系统部署影音系统有plex、emby、jellyfin、elfilm,使用kodix 也是可以,但是kodi 是本地使用,前面几个是服务器部署,网页或者客户端登入使用,不用在每个客户端都配置。推荐emby首先安装EmbyServer 4.7.14.0版本,安装命令如下docker 安装或者直接现在deb 安装包双击安装。docker 部署。sudo docker pull linuxserver/emby:4.7.14.0-ls180sudo docker run -d --name=emby -e PUID=1000 -e PGID=1000 -e TZ=Asia/Shanghai -p 8096:8096 -v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/appdata/emby/config:/config -v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/tv:/tv -v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/movie:/movies -v /opt/vc/lib:/opt/vc/lib --add-host api.themoviedb.org:13.224.161.90 --add-host api.themoviedb.org:13.35.67.86 --add-host www.themoviedb.org:54.192.151.79 --add-host api.themoviedb.org:52.85.247.30 --add-host api.themoviedb.org:52.85.247.33 --add-host api.themoviedb.org:52.85.247.69 --add-host api.themoviedb.org:52.85.247.81 --device /dev/dri:/dev/dri --device /dev/vchiq:/dev/vchiq --device /dev/video10:/dev/video10 --device /dev/video11:/dev/video11 --device /dev/video12:/dev/video12 --restart unless-stopped --privileged linuxserver/emby:4.7.14.0-ls180随后浏览器访问8096端口,第一次打开会有选择语言等选项。添加媒体库;因为之前在docker创建时已经设置了/movies和/tv路径,这里直接添加即可。修改admin登录密码并登录。随后扫描媒体库,即可看到NAS里之前下载的电影和电视剧。3 图书系统部署相比 Sumatra 与 Calibre,Koodo Reader 颜值很高,更加注重阅读体验,适合专注享受阅读内容的读者。Features支持阅读 epub , pdf, mobi, azw3 和 txt 格式的图书支持 Windows , macOS, Linux 和 网页版备份导出,网盘同步双页模式,单页模式,滚动模式听书功能,翻译功能目录,书签,笔记,书摘,书架,标签自定义字体,字体大小,行间距,阅读背景色,文字颜色触控屏手势支持文字高亮和下划线标记简体中文,繁体中文,英文,多语言支持修改docker 配置:为了加速从 ghcr.io 拉取镜像的速度,您可以将原始地址中的 ghcr.io 替换为米露云提供的镜像站 ghcr.milu.moe示例:docker pull ghcr.milu.moe/username/image:tagDockerHub对于 DockerHub 的镜像拉取,您可以配置 Docker 的 daemon.json 文件,添加国内镜像加速器地址{ "registry-mirrors": ["https://docker.milu.moe"]}JSON配置完成后,重启 Docker 服务即可生效利用宝塔桌面docker部署,在docker 部署直接搜索koodo ,然后点击安装即可网页打开效果4 bbs部署利用宝塔桌面部署,安装基本必须组件php、nginx、数据库比如:安装PHP版本,由于Discuz支持的最高PHP7.4版本环境,我们在面板中安装PHP7.0版本,搜索PHP,即可看到,然后点击安装即可在面板中搜索一下关键字Discuz,然后点击一键部署接下来在面板中开放一个端口:8089
2025年05月29日
12 阅读
0 评论
0 点赞
2025-05-29
Alist 预览完美解决
Alist+kkfileview一、安装kkFileView官方有docker镜像包文件,可以直接使用docker部署kkFileViewdocker run -d -it \ -p 8012:8012 \ -v /path/to/kkFileView:/opt/kkFileView-4.1.0/file \ --name kkFileView \ --restart unless-stopped \ keking/kkfileview #/path/to/kkFileView为你存放kkFileView预览文件的路径ShellScript打开http://ip:8012即可打开页面,可以搭配nginx实现反向代理,需要的自己实现二、配置Base64编码页面kkFileView支持传入Base64的文件链接进行解析,在http://ip:8012/onlinePreview?url={base64}进行传入,因此我们需要将alist默认的传入路径先进行Base64化后再传给kkFileView1、编写view.html文件使用nginx或者其他Web软件添加一个http静态页面,创建view.html文件,写入下列内容:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>KKFileViewer</title> </head> <body> <script src="/base64.js" type="application/javascript"></script> <script> function getQueryParamValue(name) { const searchParams = new URLSearchParams(window.location.search); return searchParams.get(name); } let url = decodeURIComponent(getQueryParamValue("url")); if (url === "null") { console.log("url的参数为空!") } else { const alistRegex = /(\?|&)alist_ts=\d+/; if (alistRegex.test(url)) { url = url.replace(alistRegex, ''); } url = encodeURIComponent(url); let e_url='https://kk.example.com/onlinePreview?url='+encodeURIComponent(BASE64.encode(url)); console.log(e_url); window.open('https://kk.example.com/onlinePreview?url='+encodeURIComponent(BASE64.encode(url)),'_self'); } </script> </body> </html>其中,将https://kk.example.com替换成你的kkFileView地址2、添加base64.js文件在gitee上可以下载支持中文编码的base64.js文件点我打开,将base64.js放到view.html同路径下,或者修改view.html里面的JavaScript引用路径base64.js下载3、测试view.html是否可以访问打开你的view.html网站,打开F12控制台页面,看看是否正常显示三、配置alist在设置->预览->外部预览添加上下列代码{ "doc,docx,xls,xlsx,ppt,pptx": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "pdf": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "csv,tsv,dotm,xlt,xltm,dot,dotx,xlam,xla,pages,wps,dps,et,ett,wpt,odt,ods,ots,odp,otp,six,ott,fodt,fods": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "vsd,vsdx,wmf,emf,eps,ofd,rtf,xmind,bpmn,eml,drawio,dcm": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "epub": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "obj,3ds,stl,ply,gltf,glb,off,3dm,fbx,dae,wrl,3mf,ifc,brep,step,iges,fcstd,bim": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "dwg,dxf,dwf,iges,igs,dwt,dng,ifc,dwfx,stl,cf2,plt": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_ durl" }, "zip,rar,jar,tar,gzip,gz,7z": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "psd,tif,tiff,tga,svg": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" }, "drawio": { "使用kkFileView预览(转码需要时间,请耐心等候)":"https://example.com/view.html?url=$e_durl" } }其中,https://example.com/view.html为你刚刚创建的view.html网页,alist先将下载地址传给view.html进行base64编码后在传给kkFileView这样就可以实现在线预览了alist配合onlyoffice 实现在线预览一、安装onlyoffice我是采用docker安装,采用的版本是7.2, aarch64 可以支持,端口号为 18081docker run --restart=always --name onlyoffice \ -p 18081:80 \ -e JWT_ENABLED=false \ -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \ -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \ -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql \ onlyoffice/documentserver:7.2二、增加view.html文件创建文件夹mkdir -p /opt/onlyofficevim /opt/onlyoffice/view.html注意:配置文件中的主机IP需要修改为自己机器的IP<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>OnlyOffice Viewer</title> </head> <body> <div id="placeholder"></div> <script type="text/javascript" src="http://主机IP:18081/web-apps/apps/api/documents/api.js"></script> <script> function getQueryParamValue(name) { const searchParams = new URLSearchParams(window.location.search); return searchParams.get(name); } const url = decodeURIComponent(getQueryParamValue("src")); const fileName = url.substring(url.lastIndexOf('/') + 1, url.lastIndexOf('?') != -1 ? url.lastIndexOf('?') : url.length); const fileExtension = fileName.split('.').pop(); const docEditor = new DocsAPI.DocEditor("placeholder", { "document": { "fileType": fileExtension, "permissions": { "edit": false, "comment": true, "download": true, "print": true, "fillForms": true, }, "title": fileName, "url": url, }, "editorConfig": { "lang": "zh-CN", "mode": "view", }, "height": "1080px", "type": "desktop", }); </script> </body> </html>三、安装nginx,并增加conf配置文件sudo apt updatesudo apt install -y nginx增加conf配置文件vim /etc/nginx/conf.d/onlyoffice.confserver { listen 18082; server_name localhost; location / { root /opt/onlyoffice; #这里修改为自己的view.html的目录 index index.html index.htm; } }重启nginxsystemctl restart nginx 注意:此处如果重启失败,则是因为80端口被占用,需要查找占用端口进程,需要干掉查看nginx状态systemctl status nginx 四、alist预览配置增加配置文件里面的主机IP,需要修改为安装onlyoffice 的ip{ "doc,docx,xls,xlsx,ppt,pptx": { "onlyoffice":"http://主机IP:18082/view.html?src=$e_url", "Microsoft":"https://view.officeapps.live.com/op/view.aspx?src=$e_url", "Google":"https://docs.google.com/gview?url=$e_url&embedded=true" }, "pdf": { "onlyoffice":"http://主机IP:18082/view.html?src=$e_url", "PDF.js":"https://alist-org.github.io/pdf.js/web/viewer.html?file=$e_url" }, "epub": { "EPUB.js":"https://alist-org.github.io/static/epub.js/viewer.html?url=$e_url" } }
2025年05月29日
3 阅读
0 评论
0 点赞
2025-05-29
AList 开源免费的网盘聚合挂载本地神器
Alist有什么用?(1)可以认为是各个网盘汇聚登入的神器,不用一会儿百度网盘客户端、一会儿阿里网盘客户端,一会儿其他网盘客户端,可以任何一个客户端可以登入目前几十种网盘。不用忍受各种网盘客户端的广告。支持上传下载预览(2)也可以驯服各种网盘,把各种网盘在本地打通,形成一个大的存储控制,让不支持webdav 的网盘都可以在支持webdav 支持本地挂载。当然Alist 不能突破会员限制。AList 是一款免费开源支持多存储的自建网盘程序 (文件列表程序),可以轻松在 VPS 服务器、NAS、普通电脑 Win、Mac、Linux 上部署。它除了能作为一款自建网盘 (将文件保存在设备硬盘上) 外,最大的特色就是支持「挂载各大主流网盘」,免费将它们的空间“据为己用”!AList 提供了网页版界面能让你集中管理各大网盘的文件,支持文件上传下载、文件管理、预览图片、查看文档、在线播放音乐、视频等等。AList 网页版可以支持 PC 以及手机浏览器。而更加有用的是,AList 还支持对外提供 WebDAV 服务!也就是能将网盘转换成 WebDAV 协议,这样我们就可以用各种各样的软件来访问它们了 (比如使用播放器直接播放网盘里的视频)。本地硬盘存储SMB 共享 、WebDAV、FTP / SFTP对象存储 (S3 协议通用)百度网盘、阿里云盘、OneDrive (SharePoint)迅雷云盘、PikPak、天翼云盘、移动云盘、115 网盘腾讯微云、夸克网盘、Dropbox、GoogleDriveYandex.Disk、MEGA、Seafile、Cloudreve白嫖上百 TB 的网络资源!支持 WebDAV,直接在线播放比如你在阿里云盘、百度网盘、PikPak、OneDrive 等网盘上保存有接近 100 TB 的电影、视频、音乐资源,通过 Alist 挂载这些网盘,你不仅可以在浏览器上直接在线播放视频:而且通过 WebDAV 协议,你还能使用 nPlayer、Infuse、Fileball、Kodi、MX Player、KMPlayer、NOVA、VLC、PotPlayer 等播放器直接连接播放了!你完全不必花时间去下载,通过网页或 WebDAV 就能在线浏览和播放,不仅不占用你本机硬盘空间,甚至也不会占用服务器的流量 (实现你跟网盘直连) 。以后,你收集网络资源时,也只需保存到网盘里就行,不必真正下载到本地,省时省力,简直爽到飞起!而且如果借助「RaiDrive」等工具,还能把 Alist 的 WebDAV 服务直接挂载变成一个虚拟的本地“硬盘”来使用 (如上图),可以用于备份、传照片、保存文档、播放原画质视频等等,用途更加广泛。四舍五入后,凭空就白嫖了几个亿的容量!Alist 部署安装教程:说了那么多,我们来说说 Alist 怎样安装吧。Alist 其实相比很多同类网盘列表程序,它在搭建部署的过程还是相对比较简单的,平台上可以支持 Windows、Mac、Linux 系统,还支持 Docker 部署,你几乎可以将 Alist 部署到任何的 VPS 服务器、树莓派、个人电脑上去。选择一:Alist Helper 桌面版 (适合新手 / 个人电脑使用)如果你打算在电脑上本机运行 AList,又或者不太熟悉命令行的操作,那么拥有 UI 图形界面的桌面版 AList 相比命令行将会更加容易上手!其中,有付费的官方版 Alist Desktop (定价 50 元),以及第三方免费开源的 Alist Helper 可以选择。免费的 Alist Helper 几乎拥有官方 Alist Desktop 的全部功能,同时可以支持 Windows 和 macOS 系统,它旨在简化 Alist 的使用,可以通过图形界面快速管理 Alist,让您更轻松地开启、关闭 Alist 程序。Alist Helper 桌面版的功能:开源免费、无广告跨平台支持 Win 和 Mac自动启动 Alist最小化至系统托盘开机自启和开机静默启动能够快速查看alist的版本和管理员信息可调整的 alist 启动参数。可根据自己的特定需求和偏好来自定义启动参数。AList 的桌面版拥有漂亮直观的 UI 图形界面,使用上非常简单!对新手,或不喜欢命令行操作的朋友更为友好,上手使用几乎没有任何难度和门槛。选择二:Docker 部署 Alist 教程 (适合安装到服务器 / Nas 等长期运行)如果你想要在 Linux 系统上部署 Alist,比如各种 VPS 服务器、NAS、树莓派或普通电脑,打算长期运行,都推荐使用 Docker 进行安装部署。下面是一个在 Debian / Ubuntu / CentOS 上安装 Docker 的教程:1、安装 Docker安装 Docker 简单入门教程2、通过 Docker 部署 Alist 命令:docker run -d --restart=always -v /your/host/dir:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest # -v 是挂载数据目录,其中的 /your/host/dir 是你主机上的目录,自行修改 # -p 是绑定端口号,启动后可通过「http://主机IP:5244」进行访问 # 如需手动设置密码,则可以执行下面的命令: docker exec -it alist ./alist admin set 你的密码待 Alist 服务成功启动之后,我们就能通过浏览器访问它了:本机访问:http://127.0.0.1:5244局域网访问:http://局域网IP:5244公网访问:http://服务器公网IP:5244 (如部署在云服务器上可直接互联网访问),如果是家庭宽带无公网 IP 的,那么需要额外配置「内网穿透」才可以实现。将网盘空间挂载到本地 (建立 WebDAV)Alist 作为一个网盘文件管理器,它后端支持挂载的存储服务非常非常多!包括但不限于本地硬盘存储、SMB 共享、FTP / SFTP、WebDAV、各大云服务的对象存储等,同时还可以支持各种网盘:百度网盘、阿里云盘、OneDrive (SharePoint)、迅雷云盘、天翼云盘、移动云盘、腾讯微云、PikPak、夸克网盘、Dropbox、Seafile 等等,非常丰富。在 Alist 的管理界面中的「存储」页面,我们可以随意添加它所支持的网盘。具体每一个网盘的添方法都有所区别,比如需要扫码登录账号获取 token 或 cookie 等,具体就需要大家「参考官网的文档」来使用了,比如这里有度盘和阿里的说明。AList 的 WebDAV 服务:AList 运行后就会开启 WebDAV 服务,供其他程序连接,下面是其连接信息,大家可以参考:URL http://主机IP地址:端口号/dav/将 AList 变成本地硬盘盘符比如有了这些信息,你就可以使用 RaiDrive 将 Alist 的 WebDAV 挂载成本地硬盘了。在安装好 RaiDrive 后,如下图:依次点击 1、2、3 添加 WebDav 服务,记得要取消掉 4 的地址选项,接着 http:主机IP、 端口:5244、路径:/dav、以及账号密码,之后点连接就搞定了。当然,其他的应用也都可以,比如在 Infuse、PotPlayer、nPlayer 等各种播放器里添加路径进行访问了。具体用法真的非常非常多,就看你的需求和创意了。AList 功能特性:部署方便,开箱即用;黑暗模式、国际化多语言支持文件预览(PDF、markdown、代码、纯文本等...);支持 README.md 预览渲染画廊模式下的图像预览视频和音频预览,支持歌词和字幕Office 文档预览(docx、pptx、xlsx、...)文件永久链接复制和直接文件下载支持密码保护和身份验证提供 WebDav 服务Docker 部署、Cloudflare workers 中转文件/文件夹打包下载网页上传(可以允许访客上传),删除,新建文件夹,重命名,移动,复制离线下载;跨存储复制文件;单线程下载/串流的多线程下载加速https://www.iplaysoft.com/alist.html
2025年05月29日
2 阅读
2 评论
0 点赞
2025-05-29
python pandas excel操作
1 获取一个excel文档的所有的sheet方法一:xls = pd.ExcelFile(file_name) sheets = xls.sheet_names num_sheets = len(sheets) print("Excel file contains", num_sheets, "sheets.") print(sheets)打印接轨:Excel file contains 2 sheets.['history', 'test_feature']方法二:sheet=pd.read_excel(file_name,sheet_name=None) print(list(sheet.keys())) for j in sheet.keys(): print(j) 打印结果:['history', 'test_feature']historytest_feature2 读取 excel 表格之读取指定的子表 sheetpandas读取excel使用 read_excel() 函数import pandas as pd df = pd.read_excel('goods_base.xlsx') . sheet_name 参数, 指定读取 sheet 子表 # 单个sheet df = pd.read_excel('sheet_name.xlsx', sheet_name=2) df = pd.read_excel('sheet_name.xlsx', sheet_name='3月') # 多个sheet, 返回字典 df_dict = pd.read_excel('sheet_name.xlsx', sheet_name=[1, '3月']) # 全部sheet, 返回字典 df_dict = pd.read_excel('sheet_name.xlsx', sheet_name=None 3 pandas逐个遍历sheetimport pandas as pd f = pd.ExcelFile('./data.xlsx') for i in f.sheet_names: d = pd.read_excel('./data.xlsx', sheetname=i) print(d)4 读最大的取行列数 import pandas as pd df = pd.read_excel('C:/Users/enuit/Desktop/data_test.xlsx') # 行数 (不包含表头,且一下均如此) print(len(df.index.values)) # 行索引 print(df.index.values) # 列数 print(len(df.columns.values)) # 列索引 print(df.columns.values)结果:5 读取指定行的单元格内容excel 原始的内容比如excel 读出的内容design 的内容df = pd.read_excel(file_name, sheet_name="history") print(df.loc[1,"demo"]) #或者 print(df.iloc[1,1])都是返回designer这个内容。6根据条件筛选单元格# C:\Users\lenovo\Desktop\总结\Python # 读取 Excel 文件并进行筛选 import pandas as pd # 设置列对齐 pd.set_option("display.unicode.ambiguous_as_wide",True) pd.set_option("display.unicode.east_asian_width",True) # 读取工号姓名时段交易额,使用默认索引 dataframe = pd.read_excel(r'C:\Users\lenovo\Desktop\总结\Python\超市营业额.xlsx',usecols = ['工号','姓名','时段','交易额']) # 打印前十行数据 dataframe[:10] 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 2 1003 王五 9:00-14:00 800 3 1004 赵六 14:00-21:00 1100 4 1005 周七 9:00-14:00 600 5 1006 钱八 14:00-21:00 700 6 1006 钱八 9:00-14:00 850 7 1001 张三 14:00-21:00 600 8 1001 张三 9:00-14:00 1300 9 1002 李四 14:00-21:00 1500 ''' # 跳过 1 2 4 行,以第一列姓名为索引 dataframe2 = pd.read_excel(r'C:\Users\lenovo\Desktop\总结\Python\超市营业额.xlsx', skiprows = [1,2,4], index_col = 1) '''注:张三李四赵六的第一条数据跳过 工号 日期 时段 交易额 柜台 姓名 王五 1003 20190301 9:00-14:00 800 食品 周七 1005 20190301 9:00-14:00 600 日用品 钱八 1006 20190301 14:00-21:00 700 日用品 钱八 1006 20190301 9:00-14:00 850 蔬菜水果 张三 1001 20190302 14:00-21:00 600 蔬菜水果 ''' # 筛选符合特定条件的数据 # 读取超市营业额数据 dataframe = pd.read_excel(r'C:\Users\lenovo\Desktop\总结\Python\超市营业额.xlsx') # 查看 5 到 10 的数据 dataframe[5:11] ''' 工号 姓名 日期 时段 交易额 柜台 5 1006 钱八 20190301 14:00-21:00 700 日用品 6 1006 钱八 20190301 9:00-14:00 850 蔬菜水果 7 1001 张三 20190302 14:00-21:00 600 蔬菜水果 8 1001 张三 20190302 9:00-14:00 1300 化妆品 9 1002 李四 20190302 14:00-21:00 1500 化妆品 10 1003 王五 20190302 9:00-14:00 1000 食品 ''' # 查看第六行的数据 dataframe.iloc[5] ''' 工号 1006 姓名 钱八 时段 14:00-21:00 交易额 700 Name: 5, dtype: object ''' dataframe[:5] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 2 1003 王五 9:00-14:00 800 3 1004 赵六 14:00-21:00 1100 4 1005 周七 9:00-14:00 600 ''' # 查看第 1 3 4 行的数据 dataframe.iloc[[0,2,3],:] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 2 1003 王五 9:00-14:00 800 3 1004 赵六 14:00-21:00 1100 ''' # 查看第 1 3 4 行的第 1 2 列 dataframe.iloc[[0,2,3],[0,1]] ''' 工号 姓名 0 1001 张三 2 1003 王五 3 1004 赵六 ''' # 查看前五行指定,姓名、时段和交易额的数据 dataframe[['姓名','时段','交易额']][:5] ''' 姓名 时段 交易额 0 张三 9:00-14:00 2000 1 李四 14:00-21:00 1800 2 王五 9:00-14:00 800 3 赵六 14:00-21:00 1100 4 周七 9:00-14:00 600 ''' dataframe[:5][['姓名','时段','交易额']] ''' 姓名 时段 交易额 0 张三 9:00-14:00 2000 1 李四 14:00-21:00 1800 2 王五 9:00-14:00 800 3 赵六 14:00-21:00 1100 4 周七 9:00-14:00 600 ''' # 查看第 2 4 5 行 姓名,交易额 数据 loc 函数 dataframe.loc[[1,3,4],['姓名','交易额']] ''' 姓名 交易额 1 李四 1800 3 赵六 1100 4 周七 600 ''' # 查看第四行的姓名数据 dataframe.at[3,'姓名'] # '赵六' # 查看交易额大于 1700 的数据 dataframe[dataframe['交易额'] > 1700] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 ''' # 查看交易额总和 dataframe.sum() ''' 工号 17055 姓名 张三李四王五赵六周七钱八钱八张三张三李四王五赵六周七钱八李四王五张三... 时段 9:00-14:0014:00-21:009:00-14:0014:00-21:009:00... 交易额 17410 dtype: object ''' # 某一时段的交易总和 dataframe[dataframe['时段'] == '14:00-21:00']['交易额'].sum() # 8300 # 查看张三在下午14:00之后的交易情况 dataframe[(dataframe.姓名 == '张三') & (dataframe.时段 == '14:00-21:00')][:10] ''' 工号 姓名 时段 交易额 7 1001 张三 14:00-21:00 600 ''' # 查看日用品的销售总额 # dataframe[dataframe['柜台'] == '日用品']['交易额'].sum() # 查看张三总共的交易额 dataframe[dataframe['姓名'].isin(['张三'])]['交易额'].sum() # 5200 # 查看交易额在 1500~3000 之间的记录 dataframe[dataframe['交易额'].between(1500,3000)] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 9 1002 李四 14:00-21:00 1500 '''
2025年05月29日
1 阅读
0 评论
0 点赞
1
...
4
5
6
...
10