# 预签名文件上传示例 (Java)

## 功能说明

本示例演示如何通过预签名方式上传文件到知识库，包含以下三步流程：

1. 获取预签名文件上传地址
2. PUT 上传文件到预签名 URL
3. 上报上传结果

## 前置要求

- JDK 8 或更高版本

## 配置说明

在 `UploadFile.java` 的 `main` 方法中修改以下配置：

```java
String ctyunAk = "your_access_key";      // 替换为实际 AccessKey
String ctyunSk = "your_security_key";    // 替换为实际 SecurityKey
String tenantId = "your_tenant_id";      // 替换为实际租户 ID
```

## 使用方法

1. 准备要上传的文件（如 `test.txt`）

2. 修改 `main` 方法中的文件路径和知识库 ID：

```java
String filePath = "test.txt";
Long infoBaseId = 123456L;
```

3. 编译运行（需引用签名 SDK jar 包）：

- Linux/MacOS 示例（冒号分隔）
```bash
# 编译
javac -cp ".:ai-api-sign-sdk-1.0.2.jar" UploadFile.java

# 运行
java -cp ".:ai-api-sign-sdk-1.0.2.jar" UploadFile
```

- Windows 示例（分号分隔）
```bash
# 编译
javac -cp ".;ai-api-sign-sdk-1.0.2.jar" UploadFile.java

# 运行
java -cp ".;ai-api-sign-sdk-1.0.2.jar" UploadFile
```

## 输出示例

```
步骤 1：获取预签名文件上传地址
200
{...}
步骤 2：PUT 上传文件到预签名地址
200
OK
步骤 3：上报上传结果
200
{...}
文件上传成功
```

## 文件说明

- `UploadFile.java` - 主程序，实现预签名上传流程
- `ai-api-sign-sdk-1.0.2.jar` - 签名 SDK jar 包，包含 YunSign 类等
