You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Code Push Server推送更新时抛出错误,更新无法下发

问题描述

执行命令 code-push-standalone release-react myapp-android android 推送更新后,文件已成功上传至AWS存储桶,但服务器抛出以下错误,导致更新无法下发至应用:

Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.
An error was encountered in a non-retryable streaming request.
Unknown error source
NotImplemented: A header you provided implies functionality that is not implemented
at throwDefaultError (/code-push-server/api/node_modules/@smithy/smithy-client/dist-cjs/index.js:836:20)
at /code-push-server/api/node_modules/@smithy/smithy-client/dist-cjs/index.js:845:5
at de_CommandError (/code-push-server/api/node_modules/@aws-sdk/client-s3/dist-cjs/index.js:4739:14)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async /code-push-server/api/node_modules/@smithy/middleware-serde/dist-cjs/index.js:35:20
at async /code-push-server/api/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:485:18
at async /code-push-server/api/node_modules/@smithy/middleware-retry/dist-cjs/index.js:320:38
at async /code-push-server/api/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js:263:18
at async /code-push-server/api/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:110:22
at async /code-push-server/api/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:138:14

当前使用支持AWS功能的code-push-server分支,且已添加文档要求的必要环境变量。

解决方案
  • 替换S3上传实现:找到code-push-server中处理S3上传的代码,将原本使用PutObjectCommand上传未知长度流的逻辑,替换为@aws-sdk/lib-storage中的Upload类——该类支持分块上传,可适配未知长度流的场景
  • 对齐AWS SDK版本:确保项目中@aws-sdk/client-s3和@aws-sdk/lib-storage的版本保持一致,避免因版本不兼容引发功能未实现的错误
  • 验证存储桶与权限:检查AWS存储桶是否启用分块上传(默认开启,若有自定义配置需确认),同时确保code-push-server使用的IAM账号拥有s3:PutObject、s3:AbortMultipartUpload、s3:ListMultipartUploadParts等上传相关权限
  • 临时修复方案:若暂时无法修改代码,可在打包更新包时确保上传文件的流长度已知(例如先将文件读取到本地获取大小后再上传,不建议用于大文件)

内容的提问来源于stack exchange,提问作者Irfan wani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 12:27:14