logo
51
166
WeChat Login

Releases 中的 assets 上传必须在10s内完成?#1239

Resolved
created 2025-07-13
Edit

描述一下体验不好的点

针对 https://api.cnb.cool/#/Releases 相关 OPEN API 中 assets 的使用

  1. swagger文档中未找到上传地址 https://asset.cnb.cool/assets/t/{upload_token} 相关API的描述
  2. 文档中确认上传成功的url: /{repo}/-/releases/{release_id}/asset-upload-confirmation/{token}/{asset_path} ,其中{token}容易和授权用的token混淆。应该更换名字。(虽然 /{repo}/-/releases/{release_id}/assets/{asset_id} 已经返回了确认url)
  3. https://asset.cnb.cool/assets/t/{token} 的上传有效期只有 10s,我10s内无法上传完成就直接报错了。也就是稍微大点的文件,我就无法上传了

token10s内有效,不等于上传超过10s就无法上传。麻烦贴一下报错信息

Creator

新增 assets

请求

curl --location --request POST 'https://api.cnb.cool/bettergi/better-genshin-impact/-/releases/1944257012518309888/asset-upload-url' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {my_token}' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--header 'Host: api.cnb.cool' \
--header 'Connection: keep-alive' \
--data-raw '{
    "asset_name": "BetterGI_v0.47.1-alpha.2.7z",
    "overwrite": true,
    "size": 274297224
}'

响应

{
    "upload_url": "https://asset.cnb.cool/assets/t/1p1211RfcgeGnsd7ivHtNnvvjJA",
    "expires_in_sec": 10,
    "verify_url": "https://api.cnb.cool/bettergi/better-genshin-impact/-/releases/1944257012518309888/asset-upload-confirmation/1p1211RfcgeGnsd7ivHtNnvvjJA/%2Fbettergi%2Fbetter-genshin-impact%2F-%2Freleases%2Fdownload%2F0.1%2FBetterGI_v0.47.1-alpha.2.7z"
}

上传

请求

curl --location --request PUT 'https://asset.cnb.cool/assets/t/1p1211RfcgeGnsd7ivHtNnvvjJA' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {my_token}' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/octet-stream' \
--header 'Host: asset.cnb.cool' \
--header 'Connection: keep-alive' \
--data-binary '@E:\BetterGI_v0.47.1-alpha.2.7z'

大约 40s 左右返回 400

{
    "errcode": 3,
    "errmsg": "token 无效"
}
1
added labels
一定是bug,除非不是
有道理:听劝
Administrator

描述一下体验不好的点

针对 https://api.cnb.cool/#/Releases 相关 OPEN API 中 assets 的使用

  1. swagger文档中未找到上传地址 https://asset.cnb.cool/assets/t/{upload_token} 相关API的描述
  2. 文档中确认上传成功的url: /{repo}/-/releases/{release_id}/asset-upload-confirmation/{token}/{asset_path} ,其中{token}容易和授权用的token混淆。应该更换名字。(虽然 /{repo}/-/releases/{release_id}/assets/{asset_id} 已经返回了确认url)
  3. https://asset.cnb.cool/assets/t/{token} 的上传有效期只有 10s,我10s内无法上传完成就直接报错了。也就是稍微大点的文件,我就无法上传了

@huiyadanli 哈喽
1、此接口不是暴露给用户的open api,因此没有相关文档
2、我们修改一下
3、看日志调用upload_url的时候已经超过了10s(刚好超了几十毫秒,可能是上传的时候误写成了10s后上传?),所以返回了400。看日志的时间,也没有经过40s才返回400,很快就返回了

added labels
下版一定
added labels
已解决:待发布
Creator

是我使用的测试工具的问题,写了个py脚本可以正常上传。感谢答疑!

Resolved ISSUE
NPC
added labels
已解决:已解决
,removed labels
已解决:待发布
NPC
added labels
已解决:已生效
,removed labels
已解决:已解决
Assignee
Label
一定是bug:除非不是
下版一定
已解决:已生效
有道理:听劝
Priority
None yet
Time period
-
Property
Add custom properties to record and label key information
Participant