Skip to content

🌐 中文 | English


🎉 Notion Files Management v1.4.6-Beta

这是 Notion Files Management 的测试版功能更新。由于本次开发周期内迭代密集(v1.4.1 ~ v1.4.5 在同一天内连续发布),版本号直接从 v1.4.0-Status 跳至 v1.4.6-Beta,以下为合并后的完整变更内容。


新功能

🎬 全媒体类型下载与原生块上传

  • 下载范围从仅 file 块扩展至 5 种 Notion 媒体块fileimagepdfaudiovideo
  • 新增页面级资源提取:自动下载页面图标(icon)、封面(cover)及 files 属性中的附件。
  • 上传时自动检测文件类型并使用 Notion 原生块类型挂载——图片以 image 块预览、视频以 video 块播放、音频以 audio 块播放、PDF 以 pdf 块预览,其他文件保持 file 块不变。
  • URL 刷新与页面大小统计同步支持所有媒体块类型。

🔄 自动更新

  • 应用启动时后台静默检查版本,结果缓存供设置页和主页使用。
  • 设置页新增**「自动更新」按钮**:按优先级依次尝试多线路下载(version.json 配置),带进度条显示,全部失败时提示手动下载。
  • 支持两种更新包类型:installer(安装包,直接启动)和 exe(裸可执行文件,通过 bat 脚本延迟替换后自动重启)。
  • 主页顶部新增版本更新提醒横幅(液态玻璃风格),检测到新版本时以渐入 + 下滑动画弹出,提供「转到设置更新」一键跳转。

🎨 界面优化

📋 下载 / 上传页面卡片化重构

  • 任务列表从三列横排布局重构为全宽纵向卡片堆叠,每个任务一个圆角卡片,进度条从 6px 提升至 8px 全宽。
  • 新增状态色彩联动系统:🔵 进行中(主题色)、🟢 完成(绿色)、🔴 失败(红色)、⚪ 等待(灰色),图标 + 进度条 + 百分比三者同色。
  • 窗口缩放时卡片等比拉伸,比例始终协调,无内容溢出。

⚙️ 设置页面整合

  • 新增统一的**「应用配置」模块**,合并原来分散在各节的保存 / 重启按钮为一键保存 + 独立重启。
  • 所有用户反馈(保存成功 / 失败、重启确认、功耗警告)统一为内嵌式 InfoBar,替代系统弹窗(MessageBox),与应用主题风格一致。
  • 背景材质选项重命名为「视频或图片」,选择时显示功耗警告提示。

🐛 Bug 修复

📏 页面大小更新结果全部为 0 GB

  • 根因page_size_update.py 仅使用 HEAD 请求获取文件大小,但 Notion(AWS S3)的 HEAD 响应不一定包含 Content-Length
  • 修复:引入双策略探测——HEAD 请求 → Range GET(bytes=0-0)解析 Content-Range 回退,与 download.py 逻辑对齐。

🔧 技术变更

Python 后端

  • notion.py:新增 MEDIA_BLOCK_TYPES 常量,get_download_url() 支持 5 种媒体块;新增 get_page_object()extract_page_level_files()_extract_hosted_url()_filename_from_url() 方法;refresh_file_url() 支持所有媒体块。
  • upload.py:新增 _detect_notion_block_type() 方法及扩展名映射常量;_attach_to_page_as_file_block() 重构为动态块类型挂载。
  • main.pyget_download_list() 新增页面级文件提取;get_download_statuses() 新增 block_type 字段。
  • page_size_update.py_probe_file_size() 重写为双策略探测;_extract_file_urls() 支持所有媒体块。

C# 前端

  • App.xaml.cs:新增启动时静默版本检查(fire-and-forget),结果缓存至 SettingsPage.CachedVersionInfo
  • SettingsPageVersionInfo 数据模型重构(适配 version.json 新格式);新增自动更新下载逻辑(多线路优先级、进度条、installer/exe 双模式);操作区整合为统一「应用配置」模块;保存反馈改为 InfoBar。
  • DownloadPage.xaml / UploadPage.xaml:任务列表重构为全宽卡片布局;新增状态色彩资源及 DataTrigger 联动;上传页移除 15MB 提示。
  • DashboardPage:新增版本更新提醒横幅(液态玻璃风格 + 渐入动画 + 轮询检测 + 导航跳转)。
  • FileSelectItem.cs / NotionBackendService.cs:新增 block_type 属性及读取逻辑。

版本号

  • Version: 1.4.0-Status → 1.4.6-Beta
  • AssemblyVersion: 1.4.0.0 → 1.4.6.0

📦 下载

Notion-Files-Management.exe

内嵌 Python 3.11,无需单独安装 Python


💻 系统要求

  • Windows 10 (1809+) · x64
  • 最低 2 GB RAM

🚀 快速开始

  1. 在 Notion 的 Notion Integrations 创建 Integration,复制 Token(ntn_ 开头)。
  2. 在 Notion 页面 → Add connections → 选择你的 Integration。
  3. 打开应用 → 设置 → 粘贴 Token → 保存 → 开始使用。

⚠️ 已知问题

  • 仅支持 Windows x64。
  • 程序重启后任务不会持久化(仅内存保存)。
  • 暂不支持断点续传。
  • 数据源迁移基于标题匹配,同名页面可能导致映射不精确。
  • Notion 临时文件 URL 有效期约 1 小时,大批量页面更新时早期获取的 URL 可能过期。
  • 裸 exe 自动更新在受保护目录(如 C:\Program Files\)下可能因权限不足失败,建议使用 installer 模式。

🐛 反馈

提交问题 · 参与讨论(GitHub)

如果觉得有用,欢迎给项目点个 ⭐ Star! · 赞助支持 ❤️


发布于 2026年2月21日 · 版本:1.4.6-Beta


🎉 Notion Files Management v1.4.6-Beta

This is a beta feature update of Notion Files Management. Due to intensive iteration during this development cycle (v1.4.1 through v1.4.5 were released consecutively within a single day), the version number jumps directly from v1.4.0-Status to v1.4.6-Beta. Below is the consolidated changelog.


New Features

🎬 Full Media Type Downloads & Native Block Uploads

  • Download scope expanded from file blocks only to all 5 Notion media block types: file, image, pdf, audio, video.
  • New page-level resource extraction: Automatically downloads page icons, covers, and attachments from files-type properties.
  • Uploads now auto-detect file types and mount using Notion's native block types — images as image blocks (with preview), videos as video blocks (with player), audio as audio blocks (with player), PDFs as pdf blocks (with preview), and other files remain as file blocks.
  • URL refresh and page size statistics now cover all media block types.

🔄 Auto-Update

  • Silent background version check on startup; results cached for use by Settings and Dashboard pages.
  • New "Auto Update" button in Settings: Attempts multi-route downloads in priority order (configured via version.json), with progress bar display; falls back to manual download prompt if all routes fail.
  • Supports two update package types: installer (setup package, launched directly) and exe (bare executable, replaced via delayed bat script with automatic restart).
  • New version update banner on Dashboard (liquid glass style) — slides in with fade + translate animation when a new version is detected, with a one-click "Go to Settings" navigation button.

🎨 UI Improvements

📋 Download / Upload Page Card Layout

  • Task list refactored from three-column horizontal layout to full-width vertical card stack, with each task in a rounded card and progress bars upgraded from 6px to 8px full-width.
  • New status color system: 🔵 In Progress (accent color), 🟢 Completed (green), 🔴 Failed (red), ⚪ Waiting (gray) — icon + progress bar + percentage all synchronized.
  • Cards scale proportionally on window resize, maintaining consistent proportions with no content overflow.

⚙️ Settings Page Consolidation

  • New unified "App Configuration" module, merging previously scattered save/restart buttons into one-click save + separate restart.
  • All user feedback (save success/failure, restart confirmation, power consumption warning) unified as inline InfoBar controls, replacing system MessageBox dialogs, consistent with the app theme.
  • Background material option renamed to "Video or Image" with power consumption warning on selection.

🐛 Bug Fixes

📏 Page Size Update Returns All 0 GB

  • Root cause: page_size_update.py used only HEAD requests to get file sizes, but Notion (AWS S3) HEAD responses don't always include Content-Length.
  • Fix: Introduced dual-strategy probing — HEAD request → Range GET (bytes=0-0) parsing Content-Range as fallback, aligned with download.py logic.

🔧 Technical Changes

Python Backend

  • notion.py: Added MEDIA_BLOCK_TYPES constant; get_download_url() supports 5 media block types; new methods get_page_object(), extract_page_level_files(), _extract_hosted_url(), _filename_from_url(); refresh_file_url() supports all media blocks.
  • upload.py: Added _detect_notion_block_type() with extension mapping constants; _attach_to_page_as_file_block() refactored to dynamic block type mounting.
  • main.py: get_download_list() now includes page-level file extraction; get_download_statuses() includes block_type field.
  • page_size_update.py: _probe_file_size() rewritten with dual-strategy probing; _extract_file_urls() supports all media blocks.

C# Frontend

  • App.xaml.cs: Added silent startup version check (fire-and-forget), caching results to SettingsPage.CachedVersionInfo.
  • SettingsPage: VersionInfo model refactored for new version.json format; added auto-update download logic (multi-route priority, progress bar, installer/exe dual mode); operation area consolidated into unified "App Configuration" module; save feedback changed to InfoBar.
  • DownloadPage.xaml / UploadPage.xaml: Task list refactored to full-width card layout; added status color resources and DataTrigger synchronization; removed 15MB notice from upload page.
  • DashboardPage: Added version update banner (liquid glass style + fade-in animation + polling detection + navigation).
  • FileSelectItem.cs / NotionBackendService.cs: Added block_type property and read logic.

Version

  • Version: 1.4.0-Status → 1.4.6-Beta
  • AssemblyVersion: 1.4.0.0 → 1.4.6.0

📦 Download

Notion-Files-Management.exe

Built-in Python 3.11, no separate Python installation required.


💻 System Requirements

  • Windows 10 (1809+) · x64
  • Minimum 2 GB RAM

🚀 Quick Start

  1. Create an Integration in Notion via Notion Integrations and copy the Token (starts with ntn_).
  2. In your Notion page → Add connections → Select your Integration.
  3. Open the application → Settings → Paste the Token → Save → Start using.

⚠️ Known Issues

  • Only supports Windows x64.
  • Tasks are not persistent after restarting the program (memory-only storage).
  • Breakpoint resume is not supported yet.
  • Data source migration uses title-based matching; pages with identical titles may cause imprecise mapping.
  • Notion temporary file URLs expire after ~1 hour; URLs fetched early in large batch updates may become invalid.
  • Bare exe auto-update may fail in protected directories (e.g., C:\Program Files\) due to insufficient permissions; installer mode is recommended in such cases.

🐛 Feedback

Submit Issues · Join Discussions

If you find this project helpful, feel free to give it a ⭐ Star! · Sponsor ❤️


Released on February 21, 2026 · Version: 1.4.6-Beta

Released under the MIT License.