Release v3.6.0
Version: 3.6.0 · Source: 53b69796afd0
📦 Download / 下载
Windows
- Installer:
x64 | ARM64 - Portable:
x64 (zip) | ARM64 (zip) | x64 (7z) | ARM64 (7z)
macOS
- DMG:
Intel | Apple Silicon - ZIP:
Apple Silicon | Intel
Linux
🎉 [v3.6.0] Release Notes
This update brings redesigned pages, improved gallery synchronization and batch operations, improving the reliability of concurrent uploads, image processing, and multiple image hosting configurations.
⚠️ Important Changes
- Removed the built-in web upload page and its web server.
- Standalone PicList-Core CLI and server usage now requires Node.js
22.13.0or later in the22.xrelease line. - The PicList-Core CLI and server now use
~/.piclist/data.jsonas the default configuration file. If it does not exist, an existing~/.piclist/config.jsonis used instead; when both files exist,data.jsontakes precedence.
🚀 Performance Improvements
- Optimized startup and page loading by loading pages, editors, and media preview components on demand.
- Reduced memory usage in the gallery and cloud file browser, improving rendering and scrolling for large file lists.
- Optimized gallery batch changes, cloud file listing, and uploads, reducing repeated processing and delays caused by reading entire files synchronously.
- Reduced repeated configuration writes and clipboard polling overhead, and improved upload temporary file cleanup.
- Optimized Imgur uploads by resolving the target album once per batch and stopping the lookup after it is found.
✨ New Features
🎨 UI Interface
- Redesigned the gallery, cloud account configuration, and file browsing pages, improving grid/list views, file selection, pagination, and file information dialogs.
- Redesigned image processing settings and rename dialogs, with clearer options for compression, resizing, watermarking, format conversion, and renaming.
- Refreshed the settings, upload task, plugin, script, about, toolbox, navigation, and QR code pages, and unified dropdowns, tooltips, and confirmation dialog styles.
- Added tray upload window support on Windows and improved mini window interactions and presentation.
- Changed the default cloud management sidebar width to
180pxand removed the remote announcement system.
🖼️ Gallery and Synchronization
- Gallery now supports SVG image preview, while non-image files display icons based on their file extensions.
- Gallery synchronization now previews additions, updates, deletions, and conflicts before applying changes. Conflicts can be resolved by keeping the local version, the remote version, or both, and a change summary can be exported.
- Gallery synchronization now creates recovery snapshots and can roll back local changes on failure. Added snapshot retention settings, storage usage display, export, and deletion, with protection for snapshots needed by active synchronization or recovery.
- Batch gallery URL editing and cloud file renaming/moving now support operation previews, conflict handling policies, and retries for failed items.
📤 Uploads and Plugins
- Added custom upload shortcut actions for clipboard or file uploads with a specified image host and configuration, including shortcut status and conflict display.
- Upload progress now distinguishes preparation, transfer, and finalization, with separate progress for primary and secondary image hosts and improved display in the main window, mini window, and upload task page.
- The upload task queue now restores saved state after restart and identifies interrupted tasks. Unfinished post-upload steps can be retried without uploading the file again.
- Added an experimental bundled Node/npm option for installing, updating, and removing plugins without a separate Node.js/npm installation when enabled.
- Plugin discovery now displays weekly npm downloads and supports sorting by relevance, downloads, update time, or name.
☁️ Cloud Management
- Added independent custom link copy formats for individual buckets or repositories, with
$url,$fileName,$filePath(full object key), and$dir(folder path) placeholders. - S3 now includes and defaults to the
autoACL option, which omits the ACL parameter when uploading for compatibility with buckets that disable ACLs. - Improved file list loading and cancellation when switching folders or accounts, preventing results from earlier requests from replacing the current view.
⚙️ PicList-Core
- Added an interactive terminal interface and a
picgo initsetup guide for managing uploads, image hosts, image processing, and language settings from the terminal. - Added and improved CLI support for named configurations, configuration editing, and secondary image host settings. Upload commands now accept
--picbedand--configNameto select a destination for the current upload. - Each upload now has its own image host, configuration, proxy, and temporary file context, preventing interference between concurrent uploads or configuration switches.
- Local and SFTP uploads now write to temporary files before replacing the destination, reducing incomplete files left by interrupted uploads.
- Improved TypeScript compatibility for npm package consumers and the reproducibility of Docker release builds.
🐛 Bug Fixes
📤 Uploads and Image Processing
- Fixed silent URL upload failures and repeated uploads of the last file when importing multiple URLs with the same file name.
- Fixed incomplete batch uploads being reported as successful and incorrect deletion of original files after partial or concurrent uploads.
- Fixed GitHub uploads reporting success when a different file already existed at the same path, and incorrect content metadata in S3 Base64/data URI uploads.
- Fixed file names, gallery metadata, and image host configurations being mixed between uploads, along with issues in separate secondary image processing and explicit selection of non-default configurations.
- Fixed preview caches from different local, WebDAV, and SFTP configurations overwriting one another, and cache write failures incorrectly marking successful uploads as failed.
- Fixed per-format conversion overrides not taking effect and same-format JPEG compression ignoring quality settings.
- Fixed HEIC/HEIF output extensions not matching the actual format, failed conversions producing mislabeled files, and EXIF removal compatibility with some HEIF files.
- Fixed invisible image watermarks when opacity was not specified and successful compression results being discarded after watermark initialization failed.
- Fixed SVG passthrough attempting unsupported encoding and removed unsupported output formats from conversion settings.
🖼️ Gallery and Synchronization
- Fixed gallery sorting clearing the selection, along with issues in grid scrolling, positioning, and click interactions.
- Fixed duplicate filename extensions during batch URL editing and the clipboard being overwritten when link formatting failed.
- Fixed failed cloud deletions being reported as successful or still triggering gallery removal scripts.
- Fixed gallery synchronization failing when legacy backup files were missing, and improved synchronization failure and recovery feedback.
☁️ Cloud Management
- Fixed missing signatures, authentication, or 403 errors when previewing or downloading files from S3, OSS, WebDAV, Upyun, Imgur, and SFTP.
- Fixed SFTP folder downloads missing nested files, local image host downloads failing on Windows, and zero-byte files being omitted from listings.
- Fixed uploads targeting the wrong folder, duplicate path separators, and Tencent Cloud COS batch uploads resubmitting earlier files.
- Fixed duplicate download workers after pause/resume, overwritten cancellation states, failed downloads occupying concurrency slots, and completed history blocking later downloads of the same file.
- Fixed renaming files with multiple dots, no extension, or regex characters, and renaming the wrong file after filtering.
- Fixed account edits losing bucket settings, regions, or custom domains, HTTPS domains being downgraded to HTTP, and incorrect configuration imports, validation, and resets.
- Fixed batch pre-signed URL copying returning unsigned links, existing signed URLs being double-encoded, and malformed public URLs for SFTP and local image hosts.
- Fixed incomplete paginated or recursive file listings for S.EE/SM.MS, DogeCloud, and Upyun.
- Fixed authentication for private GitHub folder deletion, AList deletion paths, mixed DogeCloud temporary credentials, and Gitea updates using file information from the wrong branch.
⚙️ Settings, Plugins, and Platform Compatibility
- Fixed active image host configurations not staying in sync after edits, resets, or deletions, saved values being replaced by defaults, duplicate configuration names selecting the wrong profile, and incomplete required-field validation.
- Fixed parsing of scoped or versioned plugin names and names containing dots, and cleaned up handlers left behind after failed plugin registration.
- Fixed plugin settings being read from incorrect paths, missing author information hiding the installed plugin list, and outdated search results overwriting current results.
- Fixed empty script name validation, theme import options, overlapping confirmation dialogs, and stale text after switching languages.
- Fixed Linux AppImage auto-start paths, clipboard file paths containing spaces, and Linux/WSL clipboard helper compatibility.
- Fixed macOS close/minimize shortcuts, mini window reopening and custom icons, offline update checks, and portable update version comparisons.
- Fixed mixed Windows installer and portable packaging settings, along with failures in update fallback and open-directory operations.
🌐 Services and Previews
- Fixed upload API temporary files being created before authentication, improved error feedback for invalid requests and failed deletions, and improved handling of occupied ports, server restarts, and shutdowns.
- Fixed local file preview path access, restricting the service to files inside the preview cache directory and connections from the local machine.
- Fixed remote Markdown previews executing embedded HTML.
- Fixed proxy URLs losing username/password authentication, compatibility with standard Axios proxy settings, and incorrect responses to legacy plugin requests using
json: false.
🎉 [v3.6.0] 更新日志
本次更新带来了多个页面的全新设计、相册同步和批量操作的改进,提升了并发上传、图片处理和多图床配置的稳定性。
⚠️ 重要变更
- 移除了内置网页上传界面及其 Web 服务器。
- 独立使用 PicList-Core 命令行或服务端时,现在需要 Node.js
22.13.0或更高的22.x版本。 - PicList-Core 命令行和服务端的默认配置文件改为
~/.piclist/data.json。该文件不存在时,会继续使用已有的~/.piclist/config.json;两者同时存在时优先使用data.json。
🚀 性能优化
- 优化了软件启动和页面打开速度,按需加载页面、编辑器和媒体预览相关组件。
- 降低了相册和云端文件浏览页面的内存占用,优化了大量文件的列表渲染和滚动体验。
- 优化了相册批量修改、云端文件列表加载和上传流程,减少了重复处理和同步读取完整文件造成的卡顿。
- 减少了重复的配置写入和剪贴板轮询开销,并优化了上传临时文件的清理逻辑。
- 优化了 Imgur 上传时的相册查询,每批上传只查询一次目标相册,并在找到后停止继续请求。
✨ 新增功能
🎨 UI 界面
- 重新设计了相册、云端账号配置和文件浏览页面,优化了网格/列表视图、文件选择、分页和文件信息弹窗。
- 重新设计了图片处理设置和重命名弹窗,更清晰地展示压缩、缩放、水印、格式转换及重命名选项。
- 更新了设置、任务上传、插件、脚本、关于、工具箱、导航和二维码页面,统一了下拉选择、提示信息和确认弹窗的样式。
- Windows 现在支持打开托盘上传窗口,并优化了迷你窗口的交互和显示效果。
- 将云端管理页面的默认侧栏宽度调整为
180px,并移除了远程公告系统。
🖼️ 相册与同步
- 相册现在支持预览 SVG 图片,非图片文件会根据扩展名显示对应的文件图标。
- 相册同步现在支持先预览新增、更新、删除和冲突记录,再选择保留本地、保留远程或同时保留两个版本,并可导出变更摘要。
- 相册同步新增恢复快照,失败时可回滚本地修改;支持设置快照保留数量、查看占用空间、导出和删除快照,并保护正在同步或恢复所需的快照。
- 相册批量修改链接及云端批量重命名、移动文件现在支持操作预览、冲突处理策略和失败项目重试。
📤 上传与插件
- 新增自定义快捷键上传操作,可为剪贴板上传或文件上传指定图床和配置,并显示快捷键状态及冲突信息。
- 上传进度现在区分准备、传输和完成处理阶段,并分别显示主图床和第二图床的进度,优化了主窗口、迷你窗口和任务上传页面的进度展示。
- 任务上传现在可在重启后恢复保存的任务状态并识别中断任务,支持单独重试未完成的上传后处理步骤,避免重复上传。
- 新增实验性的内置 Node/npm 选项,启用后可安装、更新和卸载插件,无需单独安装 Node.js/npm。
- 插件发现页面新增 npm 周下载量显示,并支持按相关性、下载量、更新时间或名称排序。
☁️ 云端管理
- 现在支持为不同存储桶或仓库设置独立的自定义链接复制格式,可使用
$url、$fileName、$filePath(完整对象路径)和$dir(目录路径)占位符。 - S3 新增并默认使用
autoACL 选项,上传时不发送 ACL 参数,兼容禁用 ACL 的存储桶。 - 优化了文件列表加载和取消操作,切换目录或账号时可取消之前的请求,避免旧结果覆盖当前页面。
⚙️ PicList-Core
- 新增交互式终端界面和
picgo init首次配置引导,支持在终端管理上传、图床、图片处理和语言设置。 - 命令行新增和完善了多配置管理、配置编辑及第二图床配置功能,上传命令支持通过
--picbed和--configName指定本次上传使用的图床和配置。 - 每次上传现在独立保存图床、配置、代理和临时文件上下文,避免并发上传或切换配置时相互影响。
- 本地图床和 SFTP 上传现在先写入临时文件,再替换目标文件,减少上传中断后留下不完整文件的情况。
- 改进了 npm 包的 TypeScript 类型兼容性和 Docker 发布构建的可复现性。
🐛 问题修复
📤 上传与图片处理
- 修复了 URL 上传静默失败,以及导入多个同名 URL 时重复上传最后一个文件的问题。
- 修复了不完整的批量上传被报告为成功,以及部分上传失败或并发上传时错误删除原始文件的问题。
- 修复了 GitHub 同路径存在不同文件时仍报告上传成功,以及 S3 上传 Base64/data URI 数据时内容元信息错误的问题。
- 修复了上传结果的文件名、相册信息和图床配置相互混淆的问题,以及第二图床独立处理模式和指定非默认配置不生效的问题。
- 修复了本地、WebDAV 和 SFTP 不同配置的预览缓存相互覆盖,以及缓存写入失败导致已成功上传的文件被报告为失败的问题。
- 修复了按格式设置的转换规则不生效,以及同格式 JPEG 压缩忽略质量设置的问题。
- 修复了 HEIC/HEIF 处理后扩展名与实际格式不一致、转换失败后文件被错误标记,以及部分 HEIF 文件移除 EXIF 时的兼容性问题。
- 修复了未设置图片水印透明度时水印不可见,以及水印初始化失败导致已完成的压缩结果丢失的问题。
- 修复了 SVG 保持原格式时仍尝试执行不支持的编码操作的问题,并移除了格式转换设置中不支持的输出格式。
🖼️ 相册与同步
- 修复了相册排序时丢失选择状态,以及网格滚动、定位和点击交互异常的问题。
- 修复了批量修改链接时重复追加扩展名,以及链接格式化失败时覆盖原有剪贴板内容的问题。
- 修复了云端删除失败后仍报告成功或执行相册删除脚本的问题。
- 修复了缺少旧备份文件时无法同步相册的问题,并改进了同步失败和恢复状态的提示。
☁️ 云端管理
- 修复了 S3、OSS、WebDAV、又拍云、Imgur 和 SFTP 在图片预览或下载时丢失签名、认证信息或返回 403 的问题。
- 修复了 SFTP 下载文件夹时遗漏子目录文件、本地图床在 Windows 下下载失败,以及零字节文件未显示的问题。
- 修复了上传到错误目录、路径包含重复分隔符,以及腾讯云 COS 批量上传重复提交已有文件的问题。
- 修复了下载暂停/恢复时重复启动任务、取消状态被覆盖、失败任务占用并发名额,以及同一文件无法再次下载的问题。
- 修复了包含多个点、无扩展名或正则特殊字符的文件重命名异常,以及筛选后重命名错误文件的问题。
- 修复了编辑账号时丢失存储桶设置、区域或自定义域名,HTTPS 域名被改为 HTTP,以及配置导入、校验和重置不正确的问题。
- 修复了批量复制预签名链接时得到普通链接、已签名地址被重复编码,以及 SFTP 和本地图床生成错误访问地址的问题。
- 修复了 S.EE/SM.MS、多吉云和又拍云的分页或递归文件列表不完整的问题。
- 修复了私有 GitHub 文件夹删除时丢失认证、AList 删除路径错误、多吉云临时凭据混用,以及 Gitea 更新使用错误分支文件信息的问题。
⚙️ 设置、插件与平台兼容性
- 修复了图床配置编辑、重置和删除时未正确同步当前配置,以及已有配置值被默认值覆盖、重复配置名选择错误和必填字段校验不完整的问题。
- 修复了带作用域、版本号或点号的插件名称解析错误,以及插件注册失败后残留处理器的问题。
- 修复了插件设置读取路径错误、缺少作者信息时已安装插件列表无法显示,以及旧搜索结果覆盖当前结果的问题。
- 修复了空脚本名称、导入主题选项、重复确认弹窗和切换语言后部分文本未更新的问题。
- 修复了 Linux AppImage 开机自启路径、包含空格的剪贴板文件路径,以及 Linux/WSL 剪贴板辅助脚本兼容性问题。
- 修复了 macOS 关闭和最小化快捷键、迷你窗口重新打开和自定义图标,以及离线更新检查和便携版更新版本比较的问题。
- 修复了 Windows 安装版与便携版打包设置混用,以及部分更新回退和打开目录操作失败的问题。
🌐 服务与预览
- 修复了上传 API 在认证前创建临时文件的问题,完善了无效请求和删除失败的错误反馈,并改进了端口占用、服务重启和关闭的处理。
- 修复了本地文件预览服务的路径访问问题,现在仅允许访问预览缓存目录内的文件,并限制为本机访问。
- 修复了远程 Markdown 预览可执行嵌入 HTML 的问题。
- 修复了代理地址丢失用户名和密码、标准 Axios 代理配置不兼容,以及旧插件使用
json: false请求时返回结果异常的问题。
Full Changelog: v3.5.0...v3.6.0