Files
airz-uniapp/docs/照片存储配置落地-20261013.md
T
hujun 2c9d3feab5 feat: 完善登录流程、UI适配及协议文档更新
本次提交包含以下修改:
1. 新增微信登录相关服务及页面逻辑,实现首次微信绑定手机号流程
2. 优化产品匹配卡片 UI,移除不必要状态显示
3. 调整首页 scroll-view 属性及 banner 背景样式
4. 完善积分规则校验逻辑,增加时区及策略格式验证
5. 更新协议草案文档,补充资料清单及功能说明
6. 修复分析结果路由路径,适配新的匹配结果页面
7. 调整品牌 Logo 安卓端字体对齐样式
2026-10-22 11:24:15 +08:00

54 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 照片存储配置落地记录
## 2026-10-19 开关更新
正确服务器111.230.144.231;17:40:33随后端20261019-photo-points-token-r1上线,正式private_documents.enabled已设为带引号的true,目录/密钥/备份安排保持。线上document-use无正式版本,实际上传仍被协议及有效同意校验拦截。未发布待填草案、伪造同意或验收真实上传/恢复。新证据D:/AAdesk/202609/airz-backups/photo-points-token-production-20261019-r1;下方关闭状态为10月13日历史记录。
2026-10-13。用户授权继续服务器存储准备,已确认在线照片长期保存、备份副本滚动保留7天。本轮配置完成,照片上传仍关闭;正式协议、主体和删除联系方式尚待补齐。用户继续暂缓功能验收,小程序自行发行。
## 已落地配置
| 对象 | 实际结果 |
| --- | --- |
| 在线照片 | `/www/wwwroot/xctai.cn/private-documents`,public同级;www:www(1001:1001)/0700,目前为空 |
| 运行配置 | 仅在既有`.env`追加private_documents区段:enabled=false、directory为上述路径;其他原始字节保持,没有更换或轮换密钥 |
| 权限核对 | 以www并使用现有open_basedir的CLI检查通过;另通过本机FastCGI实际FPM进程(1001:1001)进行合成文件读写/0600权限检查,测试脚本及文件已清理。没有调用上传API或合成生产用户 |
| 备份目录 | `/www/backup/airz-private-documents`,root:root/0700;文件0600,没有Nginx公开映射,不修改旧备份父目录权限 |
| 备份任务 | `/etc/cron.d/airz-private-photos`,root:root/0644;每日04:20,服务器Asia/Shanghai;MAILTO为空,不发邮件。crond active,原root crontab和04:00数据库任务保持 |
| 工具 | `/root/airz-private-storage-setup-20261013-01/database/private_documents_backup.py`,root-only目录/文件0600;对应本机后端`database/private_documents_backup.py`。无需框架启动或新依赖 |
| 密钥副本 | [production-data-key.dpapi.json](D:/AAdesk/202609/airz-backups/key-escrow/production-data-key.dpapi.json),本机DPAPI CurrentUser保护,ACL仅当前Windows用户/SYSTEM;不在Git仓库或照片备份包内 |
`.env`的服务器before副本仅保存在本轮root-only归档,未下载`.env`。密钥在服务器以临时RSA公钥封装后传回本机,在内存解包后立即转成DPAPI文件;没有输出、写入明文密钥文件或持久保存RSA私钥。本机另一个进程只读该DPAPI副本,即可核对原指纹并成功认证解密合成GCM校验串;没有解密真实业务资料。DPAPI依赖原Windows用户配置,换机/重装前应先完成受控迁移,不能把当前文件直接当作任意机器可用的密钥包。
## 备份范围与执行边界
工具用独立PDO、显式REPEATABLE READ只读事务取得资料元数据、资料scope的同意/撤销证据、document-use协议版本、三表结构和所依赖账户的id/createtime。密钥只用于生成指纹,不进入JSON或归档。后续读取清单中的活动照片密文,已删除行只保留状态、不会备份其文件;孤立密文不自动打包,也不自动删除。
归档包含metadata.json、文件摘要manifest.json和相关密文`.bin`。照片和元数据相互对应:文件本来缺失、链接、大小异常、并发修改或摘要校验失败会拒绝成功,不把残缺结果当作正常备份;上传/删除与备份并发时,必要情况下本次失败并等待重试,不暂停业务或改在线状态。新上传未进入该次快照的,留待下一次备份。归档的照片可能在快照之后被删除,恢复时必须结合最新删除/撤销记录处理。
每次成功备份后检查本工具生成的归档,删除创建时间已超过7天的旧副本。只匹配并完整验证本工具的photos-时间-随机ID.zip,未知文件保持;不触及在线照片、原数据库SQL、密钥副本或资料表。机器停机、任务失败或旧归档损坏时可能延迟清理,需查看受控backup.log并处理,不能宣称“无论故障都恰好7天内删除”。照片删除后元数据30天仍是未确认建议,本轮没有元数据清理或在线照片到期任务。
工具限制单张密文7MiB、元数据16MiB、单包密文总量2GiB/最多10000条资料记录;磁盘可用量小于1GiB时失败,避免无界生成。它们是当前运维工具的拒绝边界,不是新增的用户上传配额;后续接近边界时调整备份安排。日志只写状态、计数、归档名称和摘要,不输出行内容或凭据。
04:00整库备份仍保留3份,同盘照片备份用于有限误删/文件故障恢复;没有配置异地照片副本。照片包不是整库恢复包,不含密码/模型凭据或全部账户资料,恢复需先保护当前数据并核对所属账户及对应数据库恢复点。不能用另一时点整库直接覆盖已有用户数据,再把照片包无条件导入。
## 验证与证据
10:46:09目录/关闭配置完成,10:49:54备份任务安装并手动生成首份空资料快照(Asia/Shanghai)。当前三张新表均0行、在线目录为空;首份备份照片数0,归档SHA核对通过。这验证了正式环境的读取和归档路径,不是实际用户照片恢复验收,也未等待下一次04:20定时触发。
Windows合成文件测试6通过/1符号链接跳过,服务器独立临时目录7项全通过,覆盖缺文件失败、墓碑保留、孤立密文保留、七天边界、损坏包拒绝、路径和symlink拒绝。补充显式事务隔离后再次服务器7项及只读快照通过。没有合成数据库、DDL、业务写入、模型或短信请求,也没有改变账号/角色/产品库。
最后核对确认四服务airz-analysis/php-fpm-74/redis/crond均active,照片及短信关闭、三张新表仍为空;Nginx和root crontab保持,`.env`只追加照片区段。初次检查通道改写遗漏回执解析、最终核对模板占位符冲突及cron环境行被误计为任务的错误已定位修正;失败回执保持,最终以final-verification-retry.json为准,不能将失败计为通过。
本机私密归档:[20261013-01](D:/AAdesk/202609/airz-backups/private-storage-setup/20261013-01),包含before-inventory、prepare、install、isolation-hardening、key-export、key-recovery和final-verification-retry回执。服务端归档为`/root/airz-private-storage-setup-20261013-01`,root-only;敏感environment.before.private不共享或下载。panel-cleanup证实宝塔退出、专用浏览器关闭,login.private.js/command.private.js已删除。
本地文档同步后,四正文通过AgreementRegistry纯格式校验,草案清单/正文/配套文件摘要一致;最终工具和测试摘要与服务器回执一致,14前端运行摘要保持。20个相关文本UTF-8无BOM和空白检查、25个本地链接、两个仓库diff检查及40个私密目录/文件ACL检查通过,无当前用户/SYSTEM以外的允许规则。结果保存为上述归档内local-verification.json;本地核对未读取生产配置、访问数据库或网络,不把其时间当作新的生产探测时间。
## 恢复和接续
归档可用工具的`--verify <具体归档绝对路径>`进行只读检查;恢复先在Web外隔离位置校验摘要、密钥指纹、所属账户和协议/同意关系,再与备份之后的删除、撤销、用途结束和注销处理记录核对。已删除或应处理删除的照片不得重新可读;最新保护记录缺失时保持隔离。当前未实施任何生产恢复或自动恢复入口。
撤回本轮配置时,先仅停用新增cron文件并保留备份/密钥。恢复`.env`前必须匹配本轮after摘要且仍关闭、无新照片,再使用服务器before;出现配置漂移或新业务数据则先保留现场。目录仅在确认本轮创建、仍为空时才能非递归移除,不清空在线目录、整库或密钥。
下一项为补齐主体及有效隐私/删除申请渠道,定稿并正式发布协议后再按明确范围开放照片。用户已说暂无信息,保留待填,不编造或重复追问。用户验收继续暂缓;29页面/63任务/融资28项和产品AI回撤保持,未提交/推送/PR。