Metadata-Version: 2.4
Name: d-oss
Version: 0.4.1
Summary: 基于阿里云对象存储的命令行应用
Author-email: wangmengdi <790990241@qq.com>
Requires-Python: >=3.10
Requires-Dist: jsonargparse[signatures]>=4.38.0
Requires-Dist: oss2>=2.19.1
Requires-Dist: rich>=13.9.4
Requires-Dist: srsly>=2.5.1
Description-Content-Type: text/markdown

# d-oss

阿里云 OSS 对象存储命令行工具。

## 安装

```bash
pip install -e .
```

首次运行时会提示输入 `access_key_id` 和 `access_key_secret`，凭证会保存在 `~/.cache/d-oss/auth.json`。

## 配置

凭证文件位于 `~/.cache/d-oss/auth.json`，可手动编辑或运行 `oss info` 查看。

## 使用方法

### 查看帮助

```bash
oss --help
```

### 列文件

```bash
# 列出所有bucket的内容
oss list

# 列出指定bucket的内容
oss list model
```

### 上传

```bash
# 上传单个文件
oss upload myfile.txt model

# 上传整个目录（保持目录结构上传，不打包）
oss upload my_folder model
```

### 下载

```bash
# 下载单个文件
oss download myfile.txt model

# 下载文件夹（以 / 结尾）
oss download my_folder/ model

# 根据前缀匹配下载（自动识别为文件夹）
oss download my_folder model

# 保存到指定目录
oss download my_folder/ model --save_dir ./output

# 覆盖已存在的文件
oss download myfile.txt model --force
```

### 删除

```bash
# 删除文件夹（以 / 结尾，精确匹配前缀）
oss delete my_folder/ model

# 根据前缀匹配删除（自动加 / 做前缀匹配）
oss delete my_folder model

# 删除单个文件
oss delete myfile.txt model

# 清空整个bucket
oss delete ALL model
```

### 获取文件URL

```bash
oss url myfile.txt model
```

### 管理凭证

```bash
# 查看当前凭证
oss info

# 清除缓存的凭证（下次运行时会重新输入）
oss clear
```

## Bucket 说明

| 名称 | 用途 | Endpoint |
|------|------|----------|
| `data` | 数据 | oss-cn-beijing |
| `model` | 预训练模型 | oss-cn-beijing |
| `asset` | 资源 | oss-cn-beijing |
| `corpus` | 语料 | oss-cn-hangzhou |
| `pipeline` | spaCy 管道 | oss-cn-beijing |

## 上传/下载行为说明

- **上传目录**：递归上传所有文件，保持本地目录结构（例如 `my_folder/a.txt` 上传到 OSS 后路径为 `my_folder/a.txt`）
- **下载文件夹**：根据前缀匹配下载所有文件，自动重建目录结构
- **删除**：支持精确前缀和模糊前缀两种模式
