Metadata-Version: 2.4
Name: shell2upload
Version: 0.1.0
Summary: Upload local files through a remote shell command executor.
Author-email: ExSaltedFishPro <likaijie111@outlook.com>
License-Expression: MIT
Keywords: shell,upload,base64
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# shell2upload

`shell2upload` 将本地文件分块进行 Base64 编码，再通过调用方提供的 shell
命令执行器把数据写到远端机器并还原为原文件。它适合已经拥有 SSH、容器终端或
其他远程命令执行通道，但没有直接文件传输能力的场景。

## 安装

```bash
python -m pip install shell2upload
```

## 使用

```python
from shell2upload import Uploader


def execute_remote_command(command: str) -> None:
    # 在这里接入你的 SSH 客户端、容器终端或其他命令执行器。
    ssh_client.exec_command(command)


uploader = Uploader(execute_remote_command)
uploader.upload_file("./report.pdf", "/tmp/report.pdf")
```

远端环境需要提供 POSIX shell、`base64`、`echo` 和 `rm` 命令。上传过程中会
在远端 `/tmp` 创建随机临时文件，并在成功或失败后尝试清理。
