> ## Documentation Index
> Fetch the complete documentation index at: https://oom-wg.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 下载模块远程更新资源

> 下载模块更新信息中的更新包或更新日志



## OpenAPI

````yaml /apis/ssu/openapi.yml post /modules/id/{mid}/update/{url}
openapi: 3.1.0
info:
  title: ShiroSU HTTP 接口
  version: 1.0.0
  description: |
    `suu man --server` 运行服务所提供的 HTTP 接口

    所有 HTTP 和 WebSocket 路由均以 `/api/v1/superuser` 作为根路径

    所有 HTTP 请求都通过 `Authorization` 请求头校验，
    所有 WebSocket 连接通过 `ws` 查询参数校验，临时一次性票证由 HTTP 请求 `POST /ws` 获取

    所有路径除了部分 `PUT`/`DELETE` 方法之外，任何请求都不会返回 `404`，
    返回 `404` 即说明请求的路径不存在也就是功能不支持/版本过时
servers:
  - url: http://{host}:{port}/api/v1/superuser
    description: ShiroSU 后端的本地或局域网地址
    variables:
      host:
        default: 127.0.0.1
      port:
        default: '5355'
security:
  - bearerAuth: []
tags:
  - name: WebSocket
  - name: 状态
  - name: 配置
  - name: 系统
  - name: 主题
  - name: 软件包
  - name: 模块
paths:
  /modules/id/{mid}/update/{url}:
    post:
      tags:
        - 模块
      summary: 下载模块远程更新资源
      description: 下载模块更新信息中的更新包或更新日志
      operationId: downloadModuleUpdateAsset
      parameters:
        - $ref: '#/components/parameters/ModuleId'
        - name: url
          in: path
          required: true
          description: 模块更新资源类型
          schema:
            type: string
            enum:
              - changelog
              - zip
      responses:
        '200':
          description: 远程更新资源
          headers:
            Content-Length:
              description: 远程更新资源字节数
              schema:
                type: integer
                minimum: 1
          content:
            application/zip:
              schema:
                type: string
                format: binary
            text/markdown:
              schema:
                type: string
        '400':
          description: 下载地址无效或下载结果为空
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: 模块不存在
        '410':
          description: 模块没有更新信息地址
        '413':
          description: 下载内容过大
        '422':
          description: 更新信息中不存在目标资源地址
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/JvmBadGateway'
        '503':
          $ref: '#/components/responses/JvmUnavailable'
components:
  parameters:
    ModuleId:
      name: mid
      in: path
      required: true
      description: 模块 ID
      schema:
        type: string
  responses:
    Forbidden:
      description: 鉴权失败，或 WebSocket 票证无效
    InternalServerError:
      description: 后端执行操作失败
    JvmBadGateway:
      description: JVM 交互失败、下载响应失败、远端返回非成功状态或响应内容无法解析
    JvmUnavailable:
      description: JVM 服务不可用
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        后端管理密码

        同时支持 `Authorization: Bearer <password>` 和 `Authorization: <password>`

````