Metadata-Version: 2.2
Name: large-file-upload-sdk
Version: 3.6.2
Summary: Large File Upload SDK - Support chunked upload, resumable transfer, and Token authentication
Home-page: https://github.com/your-username/file-upload-server
Author: SAIS Development Team
Author-email: SAIS Development Team <dev@sais.com.cn>
License: MIT
Project-URL: Homepage, https://github.com/your-username/file-upload-server
Project-URL: Documentation, https://github.com/your-username/file-upload-server#readme
Project-URL: Repository, https://github.com/your-username/file-upload-server
Project-URL: Bug Reports, https://github.com/your-username/file-upload-server/issues
Keywords: file upload,large file,chunked upload,resumable upload,file transfer,token authentication
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Archiving
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.25.0
Requires-Dist: urllib3>=1.26.0
Requires-Dist: oss2>=2.18.0
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov>=2.0; extra == "dev"
Requires-Dist: black>=21.0; extra == "dev"
Requires-Dist: flake8>=3.8; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# File Upload SDK

上传文件到阿里云 OSS 的 Python SDK

## 安装

```bash
pip install large-file-upload-sdk
```

## 使用方法

### 1. 初始化 SDK

```python
from file_upload_sdk import FileUploadSDK

sdk = FileUploadSDK(
    base_url="https://file-upload-server.ai4s.com.cn/",  # 服务地址
    user_id=12345,            # 你的用户ID（从平台个人中心获取）
    user_name="张三",          # 你的用户名
)
```

| 参数 | 说明 | 获取方式 |
|------|------|---------|
| `base_url` | 上传服务地址 | 由管理员提供 |
| `user_id` | 用户ID | 登录平台后在个人中心查看 |
| `user_name` | 用户名 | 你的平台用户名 |
| `dataset_id` | 数据集ID | 在平台创建数据集后获取 |

### 2. 上传文件夹

```python
result = sdk.upload_folder(
    folder_path="/path/to/your/folder",       # 本地文件夹路径
    dataset_id="419390545334853632",           # 目标数据集ID
)

print(f"总计: {result['total']}, 成功: {result['succeeded']}, 失败: {result['failed_count']}")
```

### 3. 上传单个文件

```python
result = sdk.upload_file(
    file_path="/path/to/file.tar.gz",          # 本地文件路径
    dataset_id="419390545334853632",           # 目标数据集ID
)

if result["success"]:
    print(f"上传成功! 路径: {result.get('file_path', '')}")
else:
    print(f"上传失败: {result['error']}")
```

## 注意事项

> **关于压缩包：** 平台数据集默认为只读挂载，不支持在数据集目录中原地解压。建议上传时直接上传整个目录（使用 `upload_folder`），无需打包压缩。如需解压使用，请先将文件复制到个人可写目录后再解压。

## 常见问题

**中断了怎么办？**
重新执行同样的命令即可，已上传的文件会自动跳过。

**支持多大的文件/目录？**
单文件最大 5TB，目录大小无限制。

**ossutil 需要手动安装吗？**
不需要，首次上传文件夹时会自动下载安装。
