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, 内容安全, 多人体追踪, 文件扫描, 请求拦截