Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン 初心者向け
#243 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@hopelynd がすでに取り組んでいます。

2026年10月12日 から。

  • #247 @hopelynd による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
82/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
node.js, typescript
領域
backend, cli

調査の方向性

packages/core/src/client/client.tsから始めて、アップロードオプションをresolveFileUrl()経由でpackages/core/src/files/upload.tsとuploadToOSS()まで追ってください。既存のアップロードテストを確認するか、指定されたタイムアウトと、指定がない場合の120秒のデフォルト値を対象とするテストを追加してください。OSSファイルのアップロードが設定されたタイムアウトに従い、認証情報の取得では別個の15秒制限が維持されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

我在排查录音转写的超时问题时,发现 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,让参数和超时提示的行为一致。

主要言語
TypeScript
スター
527
フォーク
33
平均マージ
6時間 11分
マージ済み PR(30日)
26

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

modelstudioai/cli のほかの issue

modelstudioai/cli の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。