qianshipoi.FlowLauncher.Plugin.S3
1.0.4
dotnet add package qianshipoi.FlowLauncher.Plugin.S3 --version 1.0.4
NuGet\Install-Package qianshipoi.FlowLauncher.Plugin.S3 -Version 1.0.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="qianshipoi.FlowLauncher.Plugin.S3" Version="1.0.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="qianshipoi.FlowLauncher.Plugin.S3" Version="1.0.4" />
<PackageReference Include="qianshipoi.FlowLauncher.Plugin.S3" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add qianshipoi.FlowLauncher.Plugin.S3 --version 1.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: qianshipoi.FlowLauncher.Plugin.S3, 1.0.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package qianshipoi.FlowLauncher.Plugin.S3@1.0.4
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=qianshipoi.FlowLauncher.Plugin.S3&version=1.0.4
#tool nuget:?package=qianshipoi.FlowLauncher.Plugin.S3&version=1.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
FlowLauncher.Plugins
一套自用的 Flow Launcher 插件集合。
每个插件都是自包含的独立工程:查询分发(Flow 薄壳)、业务实现与其依赖同处一个项目,不再有跨插件共享层。
插件总览
| 关键字 | 插件 | 说明 |
|---|---|---|
tool |
Toolbox | 工具合集:GUID、JSON 编辑器、文件哈希、时间戳、编码转换、密码生成、进制转换、JWT、Cron |
kp |
PortKiller | 查询端口占用进程并结束进程,带历史记录 |
vn |
VarName | 中文翻译为变量名,生成 5 种命名规范,SQLite 缓存 |
pwd |
PasswordManager | 本地密码管理:SQLCipher 整库加密 + DPAPI 字段级加密 |
oss |
AliyunOss | 阿里云 OSS 文件上传 / 下载(ossd 下载、ossu 上传) |
s3 |
S3 | S3 兼容对象存储多配置浏览 / 传输 / 元数据编辑(s3d、s3u、s3b、s3p) |
dir |
OpenDirectory | 解析文件 / 文件夹路径并打开所在目录 |
asr |
SpeechToText | 语音转文字,基于 ASR 模型实时识别并粘贴结果 |
环境要求
- Windows 10 / 11
- .NET SDK 9.0(全部项目目标框架为
net9.0-windows7.0) - Flow Launcher(插件运行宿主)
项目结构
FlowLauncher.Plugins/
├── src/
│ └── FlowLauncher.Plugin.*/ # Flow Launcher 插件(8 个,各自自包含)
│ ├── Main.cs # 查询分发 / FL API 适配
│ ├── Services/ ViewModels/ Views/ # 业务实现(服务、VM、WPF 窗口与页面)
│ ├── plugin.json # 插件元数据(版本唯一来源)
│ └── favicon.ico
├── tests/ # xUnit 单元测试与 Docker 集成测试
├── scripts/ # 构建 / 发布 / 联调脚本(PowerShell)
├── Directory.Build.targets # 发布目录版本后缀约定(对所有插件生效)
└── FlowLauncher.Plugins.slnx # 解决方案
构建与测试
# 还原 + 构建整个解决方案
dotnet build FlowLauncher.Plugins.slnx
# 构建单个插件
dotnet build src/FlowLauncher.Plugin.Toolbox/FlowLauncher.Plugin.Toolbox.csproj
# 运行全部单元测试
dotnet test FlowLauncher.Plugins.slnx
# 运行单个测试项目
dotnet test tests/Toolbox.UnitTest/Toolbox.UnitTest.csproj
# 运行 S3 的 RustFS Docker 集成测试(需要 Docker Desktop)
$env:S3_RUN_DOCKER_TESTS = '1'
dotnet test tests/S3.IntegrationTest/S3.IntegrationTest.csproj
单元测试基于 xUnit(Microsoft.NET.Test.Sdk + xunit),每个测试项目直接引用对应插件工程:
| 测试项目 | 覆盖模块 |
|---|---|
tests/Toolbox.UnitTest |
工具箱各纯函数服务(GUID、哈希、时间戳、编解码、进制、JWT、Cron) |
tests/VarName.UnitTest |
命名规范转换与缓存 |
tests/PasswordManager.UnitTest |
加密存储与查询 |
tests/AliyunOss.UnitTest |
OSS 配置与结果构建 |
tests/SpeechToText.UnitTest |
ASR 调用与文本处理 |
tests/S3.UnitTest |
S3 多配置、预设、密钥与元数据 Key |
tests/S3.IntegrationTest |
Testcontainers + RustFS 的 S3 传输与元数据集成验证 |
打包与发布
每个插件的发布由 scripts/publish-<plugin>.ps1 驱动,本质是一行:
dotnet publish "$PSScriptRoot/../src/FlowLauncher.Plugin.Toolbox/FlowLauncher.Plugin.Toolbox.csproj" -p:PublishProfile=FolderProfile
发布目录命名由根目录 Directory.Build.targets 统一约定:
- 读取
plugin.json中的Version(版本只需维护这一处); - 在
FolderProfile指定的PublishDir后拼接-<Version>,例如...\Plugins\FlowLauncher.Plugin.Toolbox-1.0.0\; - 复制前清空目标目录,避免旧依赖 DLL 残留。
注意:.pubxml 发布配置按 .gitignore 约定不入库,需要在本地把 FolderProfile 的 PublishDir 指向 Flow Launcher 的 Plugins 目录。
Flow Launcher 运行时会锁定插件 DLL 导致发布失败,可先重启宿主:
.\scripts\restart-flowlauncher.ps1 # 重启
.\scripts\restart-flowlauncher.ps1 -Action Stop # 仅停止
.\scripts\restart-flowlauncher.ps1 -Action Start # 仅启动
脚本清单
| 脚本 | 用途 |
|---|---|
publish-<plugin>.ps1 |
发布指定插件(varname / toolbox / portkiller / passwordmanager / aliyunoss / s3 / speechtotext / opendirectory) |
restart-flowlauncher.ps1 |
停止 / 启动 Flow Launcher,解除插件 DLL 文件锁 |
generate-icons.ps1 |
基于文字(emoji)批量生成各插件的 .ico 图标 |
play-to-virtual-audio.ps1 |
把音频播放到 VB-Audio Virtual Cable 虚拟声卡,用于 ASR 联调 |
PlayAudio/ |
上述脚本使用的 NAudio 播放器控制台程序 |
关键第三方依赖
| 包 | 用途 |
|---|---|
Flow.Launcher.Plugin 5.1.0 |
Flow Launcher 插件 SDK |
CommunityToolkit.Mvvm 8.4.0 |
插件设置面板 MVVM |
iNKORE.UI.WPF.Modern 0.10.2.1 |
Fluent 风格 UI 组件 |
Microsoft.Data.Sqlite + SQLitePCLRaw.bundle_e_sqlcipher |
VarName 缓存 / PasswordManager 加密库 |
AlibabaCloud.OSS.V2 |
阿里云 OSS SDK |
AWSSDK.S3 4.0.104.4 |
通用 S3 兼容存储 SDK |
Testcontainers 4.16.0 |
RustFS Docker 集成测试 |
OpenAI 2.8.0 |
VarName 候选词生成 |
Microsoft.Windows.CsWin32 |
PortKiller 进程信息 P/Invoke |
Cronos |
Cron 表达式解析 |
许可证
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0-windows7.0 is compatible. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net9.0-windows7.0
- AlibabaCloud.OSS.V2 (>= 0.1.2)
- AWSSDK.S3 (>= 4.0.104.4)
- CommunityToolkit.Mvvm (>= 8.4.0)
- Flow.Launcher.Plugin (>= 5.1.0)
- Microsoft.Extensions.Caching.Memory (>= 9.0.11)
- System.Security.Cryptography.ProtectedData (>= 9.0.11)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.4 | 106 | 10/16/2026 |