收藏
回答

云开发 getTempFileURL 正常但fileID报 empty url?

【小程序】名狮帮(云开发)

【AppID】(此处替换为你们小程序真实 AppID,或保留 wx*** 脱敏)

【云开发环境 ID】cloud1-2g0n51xg7e8b219c

【开发者工具】Stable 2.01.2510280

【基础库】3.14.3


【现象】

1)云存储中存在 PDF,控制台「文件详情」中的 File ID 为复合形态,示例:

cloud://cloud1-2g0n51xg7e8b219c.636c-cloud1-2g0n51xg7e8b219c-1412952295/cms/papers/1778036498216_29kd53.pdf


2)在微信开发者工具 Console 中对上述完整 File ID 调用:

wx.cloud.getTempFileURL({

  fileList: ['cloud://cloud1-2g0n51xg7e8b219c.636c-cloud1-2g0n51xg7e8b219c-1412952295/cms/papers/1778036498216_29kd53.pdf'],

  success: res => console.log('ok', res),

  fail: err => console.error(err)

})

返回 errMsg 为 cloud.getTempFileURL:ok,fileList[0] 含非空 tempFileURL(https,域名形如 636c-cloud1-2g0n51xg7e8b219c-1412952295.tcb.qcloud.la)。


3)将该 tempFileURL 复制到 Safari 地址栏打开,系统提示是否允许该域名下载,说明 HTTPS 临时链可访问、文件可下。


4)同一小程序、同一 fileID 调用:

wx.cloud.downloadFile({

  fileID: 'cloud://cloud1-2g0n51xg7e8b219c.636c-cloud1-2g0n51xg7e8b219c-1412952295/cms/papers/1778036498216_29kd53.pdf',

  success: res => console.log(res),

  fail: err => console.error(err)

})

出现 errCode: -403003,errMsg: internal server error: empty download url(或与之一致的 empty download url 类错误)。


5)业务中另对「单段」fileID 变体调用 getTempFileURL 时,曾出现 STORAGE_FILE_NONEXIST;对完整复合 fileID 则 getTempFileURL 成功。说明问题焦点在「同一对象下,tempURL 可用而 cloud.downloadFile(fileID) 不一致」。


6)已按官方说明在小程序后台配置 downloadFile 合法域名(tcb 相关域名)后,使用 wx.downloadFile({ url: tempFileURL }) 与 wx.cloud.downloadFile({ fileID }) 行为仍希望官方明确推荐与根因(若我社配置仍缺项请指出必填域名形态)。


【期望】

在 getTempFileURL 成功且 tempFileURL 在系统浏览器可访问的前提下,wx.cloud.downloadFile({ fileID }) 应对该 fileID 表现一致可下载,或官方文档明确:此类场景应仅使用 tempURL + wx.downloadFile({ url }),并说明与 cloud.downloadFile(fileID) 的差异及限制。

【截图】

- 图1:getTempFileURL 成功返回,含 tempFileURL

- 图2(可选):Safari/浏览器允许下载 tcb.qcloud.la 的截图

【说明】

腾讯云工单侧已建议优先走 tempURL;现向微信开放社区同步,请协助判定是否为客户端 SDK 缺陷或文档 gaps。


回答关注问题邀请回答
收藏

2 个回答

  • 夏芒
    夏芒
    19小时前

    智能回答并不能解决问题,有没有人工可以进行排查啊

    19小时前
    有用 1
    回复
  • 智能回答 智能回答 本次回答由AI生成
    22小时前
    有用
登录 后发表内容