Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[bug]: speech recognize --timeout 未作用于临时 OSS 上传(固定 120 秒)

Abierto Apto para principiantes
#243 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@hopelynd ya está trabajando en esto.

Desde el 12/10/2026.

  • #247 de @hopelynd — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
node.js, typescript
Área
backend, cli

Línea de trabajo

Empieza por packages/core/src/client/client.ts y sigue las opciones de carga a través de resolveFileUrl() hasta packages/core/src/files/upload.ts y uploadToOSS(). Comprueba las pruebas de carga existentes o añade cobertura para un timeout proporcionado y el valor predeterminado de 120 segundos cuando no se proporcione ninguno. Se considera terminado cuando la carga de archivos OSS sigue el timeout configurado, mientras que la obtención de credenciales conserva su límite independiente de 15 segundos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

我在排查录音转写的超时问题时,发现 speech recognize --timeout 没有传到临时 OSS 文件上传这一步。上传仍固定等待120秒,而报错提示会建议增大 --timeout,因此调整这个参数对上传阶段没有效果。

已搜索现有 Issue,并核对官方 v2.1.0 和当前 main 的实现,相关代码一致。

环境
  • BL、core、commands、runtime:2.1.0
  • Node.js:v24.21.0
  • Windows 11 x64,北京地域
问题位置
  1. packages/core/src/client/client.ts 的 Client.uploadFile() 调用 resolveFileUrl() 时没有传入有效配置中的 settings.timeout:

    return resolveFileUrl(source, this.requireApi().token, model, {
      ...opts,
      identity: this.deps.identity,
    });
    
  2. packages/core/src/files/upload.ts 的 uploadToOSS() 则直接使用固定计时器:

    const uploadSignal = combineWithTimeout(120_000, signal);
    

因此,即使 CLI 指定 --timeout 3600,OSS 上传也不会使用这个值;上传耗时超过120秒时仍会被中止。

建议修改

沿现有调用链传递 timeout 即可:

  • 在 Client.uploadFile() 的上传选项中加入 timeout: this.deps.settings.timeout。
  • 在 resolveFileUrl() 的选项类型及 UploadOptions 中增加等待秒数,并经 uploadFile() 传入 uploadToOSS()。
  • 将 OSS 上传计时器改为 combineWithTimeout(timeout * 1000, signal)。直接调用 SDK 且未传 timeout 时,可以保留原有120秒默认值。

获取上传凭证的15秒计时器与文件上传是两个阶段;本次建议针对实际文件上传。

本机核对结果

用合成凭据及模拟响应记录原生计时器:设置 timeout: 1 时,原版的文件上传计时器仍为120000毫秒。按上述方式透传后变为1000毫秒。另用延迟上传合约核对,一秒设置下300毫秒上传可完成,0.1秒设置下会按时中止。

希望文件上传也能遵循已解析的 timeout,让参数和超时提示的行为一致。

Lenguaje dominante
TypeScript
Estrellas
527
Forks
33
Merge medio
6 h 11 min
PR fusionados (30 d)
26

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelstudioai/cli

Todos los issues de modelstudioai/cli

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.