scanii/scanii-dotnet

GitHub: scanii/scanii-dotnet

Scanii 内容处理服务的官方 .NET 客户端 SDK,提供轻量、零依赖的文件内容扫描与安全检测 API 集成能力。

Stars: 2 | Forks: 3

# scanii-dotnet [Scanii](https://scanii.com) 内容处理 API 的 .NET 客户端。 ## 安装 ``` dotnet add package Scanii --version 7.2.0 ``` ## SDK 原则 1. **轻量。** 零运行时依赖,仅使用标准库。 2. **保持最新。** 始终与最新的 Scanii API 保持同步。 3. **仅作集成。** 封装 REST API —— 重试、并发和批处理由调用者负责。 ## 快速入门 ``` using Scanii; var client = ScaniiClients.CreateDefault(ScaniiTarget.Us1, "your-api-key", "your-api-secret"); var result = await client.Process("/path/to/file.pdf"); if (result.Findings.Count == 0) Console.WriteLine("Content is safe!"); else Console.WriteLine($"Findings: {string.Join(", ", result.Findings)}"); ``` ## API 参考 完整的 API 文档: 所有方法都位于 `IScaniiClient` 上,通过 `ScaniiClients.CreateDefault` 创建。 | 方法 | 描述 | |---|---| | `Process(path/stream, callback?, metadata?)` | 同步文件扫描 | | `ProcessAsync(path/stream, callback?, metadata?)` | 服务器端异步扫描,返回待处理结果 | | `ProcessFromUrl(url, callback?, metadata?)` | 对远程 URL 进行同步扫描(v2.2 预览版) | | `Fetch(url, callback?, metadata?)` | 服务器端获取并扫描远程 URL | | `Retrieve(id)` | 获取先前的扫描结果 | | `RetrieveTrace(id)` | 获取处理事件追踪;遇到 404 时返回 `null`(v2.2 预览版) | | `CreateAuthToken(timeoutSeconds)` | 生成短期的 auth token | | `RetrieveAuthToken(id)` | 查看 auth token | | `DeleteAuthToken(id)` | 吊销 auth token | | `Ping()` | 健康检查 | ## 区域 Endpoint ``` var client = ScaniiClients.CreateDefault(ScaniiTarget.Eu1, key, secret); ``` | 目标 | Endpoint | |---|---| | `ScaniiTarget.Us1` | `https://api-us1.scanii.com` | | `ScaniiTarget.Ca1` | `https://api-ca1.scanii.com` | | `ScaniiTarget.Eu1` | `https://api-eu1.scanii.com` | | `ScaniiTarget.Eu2` | `https://api-eu2.scanii.com` | | `ScaniiTarget.Ap1` | `https://api-ap1.scanii.com` | | `ScaniiTarget.Ap2` | `https://api-ap2.scanii.com` | | ~~`ScaniiTarget.Auto`~~ | ~~`https://api.scanii.com`~~ — **已弃用**,不保证区域数据存放位置 | ## 错误处理 ``` try { var result = await client.Process("/path/to/file"); } catch (ScaniiAuthException) { // HTTP 401 — bad credentials } catch (ScaniiRateLimitException) { // HTTP 429 — rate limit hit } catch (ScaniiException ex) { // other API errors } ``` ## 使用 scanii-cli 进行本地测试 ``` docker run -d --name scanii-cli -p 4000:4000 ghcr.io/scanii/scanii-cli:latest server ``` ``` var client = ScaniiClients.CreateDefault("key", "secret", target: new ScaniiTarget("http://localhost:4000")); ``` ## 许可证 Apache 2.0。请参见 [LICENSE](LICENSE)。
标签:API客户端, Naabu, 内容安全, 多人体追踪, 文件扫描, 请求拦截