Release v0.1.6: identify gallery destinations by provider and NAS name [skip ci]
This commit is contained in:
@@ -43,6 +43,10 @@ WEB_PORT=6005. The latter binds every NAS interface, so use the LAN IP when
|
||||
strict LAN-only binding is required. No firewall/router/proxy edits are performed.
|
||||
Copy deploy/devices.yml.example to config/devices.yml if multiple devices are desired.
|
||||
|
||||
Set `FRAME_FLOW_STORAGE_NAME` to the NAS display name. The gallery tab shows
|
||||
this name followed by “本地图库” (or “Local gallery”). For Actions deployment,
|
||||
set the repository Variable of the same name. It is a display label, not a path.
|
||||
|
||||
## 3. Validate, build, start / 验证构建启动
|
||||
|
||||
Synology Docker is /usr/local/bin/docker. The SSH user may require sudo. Do not
|
||||
|
||||
@@ -23,3 +23,22 @@ The UI labels the top card **Shared connection**, displays source IDs and paths
|
||||
on each source card, and explains each source's connection dependency. Shared
|
||||
session disconnect is available only in the shared connection card and asks for
|
||||
confirmation of its impact on all people-filtered sources.
|
||||
|
||||
|
||||
## Gallery destination labels / 图库目的地标签
|
||||
|
||||
图库标签描述可保存图片的具体目的地,照片来源连接不自动成为图库目的地。
|
||||
当前为 `KoKonna 云端图库` 与 `<FRAME_FLOW_STORAGE_NAME> 本地图库`;
|
||||
NAS 名称通过部署配置设置,空值回退为 NAS,不使用容器 ID 代替 NAS 名称。
|
||||
英文使用同一实例名称与 cloud gallery / Local gallery。
|
||||
|
||||
`GET /api/v1/settings` 的 `gallery_destinations` 提供目的地 ID、适配器、
|
||||
实例/服务商名称、存储类型、连接状态和保存能力。只有连接有效、明确支持上传且
|
||||
前端存在对应适配器的目的地才进入标签栏。能力默认关闭;全局写入保护仍单独生效,
|
||||
目的地的保存能力不等于当前用户获准写入。
|
||||
|
||||
后续网盘接入须先实现其读取/保存适配器、校验授权及能力,再注册目的地。
|
||||
命名规则为“服务商/实例名称 + 云端图库”,例如已实现保存能力后才可展示
|
||||
“百度网盘·家庭 云端图库”。多个账号/实例必须能从名称区分。
|
||||
目前 Google Drive、阿里云盘、百度网盘和 WebDAV 仅作为只读照片来源,
|
||||
不出现在可保存目的地标签栏,不显示尚未实现的上传入口。
|
||||
|
||||
@@ -37,6 +37,7 @@ Repository Settings → Actions configuration (private paths/addresses use Secre
|
||||
| `PROD_PHOTOS_DIR` (Secret) | Existing read-only photos source if present; otherwise empty |
|
||||
| `PROD_WEB_BIND` (Secret) | Exact existing Docker HostIp (`0.0.0.0` or NAS LAN IP etc.) |
|
||||
| `PROD_WEB_PORT` | Exact existing mapped port |
|
||||
| `FRAME_FLOW_STORAGE_NAME` | Optional NAS display name for the local gallery; defaults to NAS |
|
||||
| `PROD_STATE_VOLUME` | Dedicated new deployment journal volume, e.g. `pigway-frame-flow-cd-state` |
|
||||
| `PROD_MOCK` | Explicit `true`/`false`, consistent with intended production mode |
|
||||
| `PROD_WRITE_ENABLED` | Explicit `true`/`false`; preserve owner's existing write policy |
|
||||
|
||||
+57
-3
@@ -2,7 +2,7 @@
|
||||
"openapi": "3.1.0",
|
||||
"info": {
|
||||
"title": "Pigway Frame Flow API",
|
||||
"version": "0.1.5"
|
||||
"version": "0.1.6"
|
||||
},
|
||||
"paths": {
|
||||
"/api/v1/devices/{device_id}/widgets/selection": {
|
||||
@@ -15047,6 +15047,48 @@
|
||||
],
|
||||
"title": "FutureContent"
|
||||
},
|
||||
"GalleryDestination": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"title": "Id"
|
||||
},
|
||||
"adapter": {
|
||||
"type": "string",
|
||||
"title": "Adapter"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "Name"
|
||||
},
|
||||
"storage": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"cloud",
|
||||
"local"
|
||||
],
|
||||
"title": "Storage"
|
||||
},
|
||||
"connected": {
|
||||
"type": "boolean",
|
||||
"title": "Connected",
|
||||
"default": false
|
||||
},
|
||||
"supports_upload": {
|
||||
"type": "boolean",
|
||||
"title": "Supports Upload",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"adapter",
|
||||
"name",
|
||||
"storage"
|
||||
],
|
||||
"title": "GalleryDestination"
|
||||
},
|
||||
"GalleryImage": {
|
||||
"properties": {
|
||||
"starred": {
|
||||
@@ -15156,7 +15198,7 @@
|
||||
"version": {
|
||||
"type": "string",
|
||||
"title": "Version",
|
||||
"default": "0.1.5"
|
||||
"default": "0.1.6"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
@@ -17091,6 +17133,18 @@
|
||||
},
|
||||
"SettingsView": {
|
||||
"properties": {
|
||||
"storage_name": {
|
||||
"type": "string",
|
||||
"title": "Storage Name",
|
||||
"default": "NAS"
|
||||
},
|
||||
"gallery_destinations": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/GalleryDestination"
|
||||
},
|
||||
"type": "array",
|
||||
"title": "Gallery Destinations"
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"title": "Version"
|
||||
@@ -17333,7 +17387,7 @@
|
||||
"version": {
|
||||
"type": "string",
|
||||
"title": "Version",
|
||||
"default": "0.1.5"
|
||||
"default": "0.1.6"
|
||||
},
|
||||
"api_version": {
|
||||
"type": "string",
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# Pigway Frame Flow v0.1.6
|
||||
|
||||
## 简体中文
|
||||
|
||||
- 图库使用具体目的地标签:`KoKonna 云端图库` 与 `<NAS 名称> 本地图库`,NAS 名称通过 `FRAME_FLOW_STORAGE_NAME` 配置。
|
||||
- Settings API 增加目的地元数据,标签仅展示连接已配置、明确支持保存且存在适配器的目的地;全局写入保护保持独立。
|
||||
- 后续网盘须实现读取/保存适配器并完成连接后才能加入标签栏,显示具体服务商/实例名称。当前只读照片来源不会作为保存目的地展示。
|
||||
- 长标签在手机上换行,避免整页横向溢出;中英文保持相同目的地身份。
|
||||
- Compose 和自动部署透传 NAS 展示名称;分支 CI 完整验证后发布标签,避免相同提交的标签推送重复占用构建队列。
|
||||
|
||||
### 验证
|
||||
|
||||
本地 507 项 Python 测试、Ruff、格式检查、mypy、JavaScript 语法检查通过。
|
||||
图库目的地标签与能力过滤 18 项浏览器检查通过;覆盖 320–1440 像素、中英文、明暗主题和长 NAS 名称。
|
||||
本次不增加任何网盘写入功能,不改变画框写入策略。
|
||||
|
||||
### 升级
|
||||
|
||||
Compose 设置 `FRAME_FLOW_STORAGE_NAME`;Actions 设置同名仓库 Variable。
|
||||
名称只描述实例,不作为路径或授权凭据。未设置时回退为 NAS。
|
||||
默认访问端口仍为 6005,容器内部端口仍为 18787。
|
||||
NAS 源码包与 SHA256 附件不含运行配置、密钥、数据库或私人照片,需自行构建镜像。
|
||||
|
||||
## English
|
||||
|
||||
Gallery tabs identify the concrete destination: KoKonna cloud gallery and the configured NAS name plus Local gallery.
|
||||
Destination metadata includes connection and upload capabilities; only implemented writable adapters are shown.
|
||||
Existing read-only cloud photo sources are not presented as save destinations. Long labels wrap on mobile.
|
||||
Set FRAME_FLOW_STORAGE_NAME in Compose or the Actions repository Variables. No cloud-drive write support or device write policy is changed.
|
||||
Reference in New Issue
Block a user