# 下载已购买的文件

目前不提供在线购买。请使用 `catabricks catalog list` 查看公开商品，或[咨询数据使用](/contact?lang=zh-CN)。遇到 `SALES_DISABLED` 或 `PAYMENT_NOT_CONFIGURED` 时，请停止重试购买。提交咨询不会授予文件访问权限；已有订单的下载仍遵循其权限和期限。

请先[安装 CLI](/docs/cli?lang=zh-CN)。以下示例基于 CLI 0.2.5。

## 1. 登录

```sh
catabricks login
```

在浏览器中使用 Google 登录，核对终端显示的设备代码后批准请求。

## 2. 查找订单 ID

```sh
catabricks orders list
```

找到想下载的已购文件，复制其 `data.items[].id`。这就是下一条命令中的 `ORDER_ID`。

以下 JSON 仅展示部分字段，用于说明。ID 和商品名不是真实订单，请使用自己的命令输出。默认输出为缩进 JSON，添加 `--json` 可改为单行输出。

```json
{
  "ok": true,
  "data": {
    "items": [
      {
        "id": "93db21a6-0f62-40d9-a4e8-56d7a954c4b2",
        "productTitle": "Example dataset"
      }
    ]
  }
}
```

## 3. 下载

将 `ORDER_ID` 替换为复制的订单 ID。`--output` 指定文件保存路径。

```sh
catabricks download ORDER_ID --output ./dataset.zip
```

下载后，CLI 会验证文件大小和 SHA-256。显示 `"ok": true` 和保存路径即表示完成。只有支付完成且文件已准备好交付的订单才能下载。

下载中断时，使用相同订单和路径并添加 `--resume` 继续下载。请同时保留 `.part` 和 `.part.json` 文件。

```sh
catabricks download ORDER_ID --output ./dataset.zip --resume
```

如需稍后再次验证，请运行 `catabricks verify ./dataset.zip --order ORDER_ID`。下载期限内可重复下载。

## 购买新数据

如果还没有已购订单，请先查看公开商品目录。浏览商品无需登录。

```sh
catabricks catalog list
```

以下同样是仅展示部分字段的说明用示例。`Product.id` 用于查看商品，`offerId` 用于购买，两者是不同的 ID。

```json
{
  "ok": true,
  "data": {
    "items": [
      {
        "id": "78c3be2a-3f14-4bf2-a219-e985443d3c79",
        "title": "Example dataset",
        "offerId": "d6a92d43-f931-44af-b3b2-8c26f2aa24b8"
      }
    ]
  }
}
```

将商品的 `id` 填入 `PRODUCT_ID`，确认内容、格式、许可协议、整套价格 `priceKrw` 和下载期限 `downloadHours`。购买时，将该商品的 `offerId` 填入 `OFFER_ID`。

```sh
catabricks catalog show PRODUCT_ID
catabricks buy OFFER_ID --buyer personal
```

`buy` 会准备订单并打开支付页面。使用同一 Google 账户确认金额、条件和购买主体后，在浏览器中完成支付。不要在 CLI 中输入银行卡信息。实际商品和价格以当前查询结果为准。

`buy` 返回的 `data.orderId` 就是新订单的 `Order.id`，在 `orders list` 中显示为 `data.items[].id`。支付后使用该 ID 按照上方步骤下载。组织购买请参阅[命令参考](/docs/cli/reference?lang=zh-CN)。

## 结束会话

完成后运行 `catabricks logout` 结束当前 CLI 会话。如需结束所有 CLI 会话，请改用 `catabricks logout --all`。已下载的文件会保留。
