Metadata-Version: 2.4
Name: tflink-api
Version: 0.0.1
Summary: A Python async SDK that wraps the tfLink (tmpfile.link) API into a clean, type-safe interface.
Author-email: Jerry <wujr24@m.fudan.edu.cn>
License: MIT
Project-URL: Homepage, https://github.com/Jerry-Wu-GitHub/tflink-api
Project-URL: Repository, https://github.com/Jerry-Wu-GitHub/tflink-api.git
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx
Requires-Dist: python-dotenv
Requires-Dist: typing-extensions
Requires-Dist: yarl
Dynamic: license-file

# tfLink API

一个轻量、异步、类型安全的 [tfLink](https://tmpfile.link) Python SDK。

提供临时的文件上传功能（单文件最大 100MB，匿名上传 7 天后自动删除）。

## 安装

```bash
pip install tflink-api
```

## 快速开始

```python
import asyncio
from tflink_api import TFLinkClient

async def main():
    async with TFLinkClient() as client:
        result = await client.upload("document.pdf")
        print("下载链接:", result.download_link)
        print("文件名:", result.file_name)
        print("文件大小:", result.size)

asyncio.run(main())
```

## 已认证上传

```python
from tflink_api import TFLinkClient

client = TFLinkClient(
    user_id="YOUR_USER_ID",
    auth_token="YOUR_AUTH_TOKEN",
)
result = await client.upload("document.pdf")
```

## 主要功能

- ✅ 完全异步（基于 `httpx`）
- ✅ 类型提示支持
- ✅ 自动管理 HTTP 会话（上下文管理器）
- ✅ 支持匿名与已认证上传
- ✅ 可直接传入文件路径、文件对象或字节串
- ✅ 可传入自定义 HTTP 客户端

## 配置

可以通过环境变量（`.env` 文件或系统环境）配置：

```env
TFLINK_BASE_URL=https://tmpfile.link
TFLINK_API_PATH=api/upload
```

## 提示

如果您要上传比较大的文件，需要手动设置 `timeout` 参数：

```python
await client.upload(f, timeout=1000)
```

## 许可证

[MIT](LICENSE)
