wechaty / puppet-supports

Wechaty Puppet Services (WPS)
https://wechaty.js.org/docs/puppet-services/
Apache License 2.0
29 stars 3 forks source link

[BUG]WorkPro: 企业微信发送附件大小为0的情况 #483

Open 2424919976 opened 3 weeks ago

2424919976 commented 3 weeks ago

image 发送附件的时候,会偶尔出现附件为大小0的情况,发送图片就不会

image

代码: const self = puppet.userSelf(); const fileBox = FileBox.fromFile("C:\测试1.xlsx","测试1.xlsx"); // 保存到本地 await fileBox.toFile("C:\要发送的文件测试1.xlsx",true); await self.say(fileBox); const room = await puppet.Room.find({topic: '主动推送@=主动推送测试'}) await room.say(fileBox); console.log(self) console.log(room)

环境: "dependencies": { "@juzi/wechaty": "^1.0.65", "@juzi/wechaty-puppet": "^1.0.61", "@juzi/wechaty-puppet-service": "^1.0.69", "async": "^3.2.5", "axios": "^1.6.8", "bindings": "^1.5.0", "chalk": "^2.4.2", "debug": "^4.3.4", "electron-squirrel-startup": "^1.0.0", "file-uri-to-path": "^2.0.0", "fluent-ffmpeg": "^2.1.2", "form-data": "^4.0.0", "fs-extra": "^8.1.0", "in-gfw": "^1.2.0", "install": "^0.13.0", "layui": "^2.9.8", "nugget": "^2.2.0", "qrcode": "^1.5.3", "sharp": "^0.33.2", "silk-wasm": "^3.3.4", "socket.io-client": "^4.7.5", "sqlite3": "file:sqlite3-5.1.6.tgz", "string-width": "^4.2.3", "wechaty": "^1.20.2", "wechaty-puppet-official-account": "^1.10.7", "wechaty-puppet-padlocal": "^1.20.1", "wechaty-puppet-wechat4u": "^1.14.14" }

消息id: 10:46:26 INFO PuppetService messageSendFile(R:10943776730626269, FileBox#File<测试1.xlsx>) grpc called, messageId: d0b60d2b8beeec866fd32582812f04f8

image

su-chang commented 3 weeks ago

可能和文件链接中的content-type有关。

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

su-chang commented 3 weeks ago

文件大小是:8835

文件大小为0的发送时间点可以提供下么?

2424919976 commented 3 weeks ago

文件大小是:8835

文件大小为0的发送时间点可以提供下么?

文件大小为0的发送时间点:6月11日10点46分26秒 你说有可能跟文件链接中的content-type有关,但我是直接读取本地的xlsx文件,没有地方可以让我设置content-type

2424919976 commented 3 weeks ago

文件大小是:8835

文件大小为0的发送时间点可以提供下么?

如果有需要,我可以让你远程我电脑,我复现一下给你看

su-chang commented 3 weeks ago

附件大小为0的文件,下载到本地电脑后,大小正常么?

2424919976 commented 3 weeks ago

附件大小为0的文件,下载到本地电脑后,大小正常么?

不正常,为0的附件,在电脑上是可以下载的,但是下载打开之后,里面是空的,在手机上,大小为0的附件是没法办法下载的,点击的时候,会提示下载失败

2424919976 commented 3 weeks ago

附件大小为0的文件,下载到本地电脑后,大小正常么?

但文件转发是不会出现附件为0的情况的

2424919976 commented 3 weeks ago

附件大小为0的文件,下载到本地电脑后,大小正常么?

可以加个微信聊一下吗?我也可以录屏发你的微信

su-chang commented 3 weeks ago

刚才分析了下数据,初步定位到原因,服务端这边使用的cdn缓存的数据有点问题,应该是 2024-06-11 @ 09:15:25.875 上传过一次这个文件,但是传输的数据有问题,导致留下了错误的缓存,从而导致md5相同的情况下,会发送出size为0的文件。

目前已经临时处理了,可以再试试看看。

2424919976 commented 3 weeks ago

刚才分析了下数据,初步定位到原因,服务端这边使用的cdn缓存的数据有点问题,应该是 2024-06-11 @ 09:15:25.875 上传过一次这个文件,但是传输的数据有问题,导致留下了错误的缓存,从而导致md5相同的情况下,会发送出size为0的文件。

目前已经临时处理了,可以再试试看看。

那这个问题会做针对性处理吗,我看到也有其他人提出过这个问题,是不是你那边处理好之后,就不会出现这种情况了,需要升级wechaty的版本吗?

su-chang commented 3 weeks ago

不用升级版本,后续会排期处理。

2424919976 commented 3 weeks ago

不用升级版本,后续会排期处理。

这个问题处理好之后,可以告诉我一下吗,因为目前发出去的文件有可能出现附件为0的情况,所以我开展功能需求的时候,是使用了转发来给别人发送文件,这个有局限性,希望你那边尽快处理,谢谢

刚才你说已经临时处理了,是指时间点:6月11日10点46分26秒 的这个文件临时处理了,该文件不会出现为0的情况,还是指这段时间发的文件不会出现为0的情况

su-chang commented 3 weeks ago

都处理了

2424919976 commented 3 weeks ago

都处理了

刚才我连续给自己发送了好多个文件,还是会出现为0的

1718239505197

最后一个文件的日志:08:40:38 INFO PuppetService messageSendFile(1688854893545776, FileBox#File<测试1.xlsx>) grpc called, messageId: da2fbe8b3d8d1e8f48b923c7035c48c3

消息id是 da2fbe8b3d8d1e8f48b923c7035c48c3 时间是今天的8点40分38秒

2424919976 commented 2 weeks ago

你好,请问这个问题修复了,这个是比较重要的bug吧,发文本跟发附件是机器人最基本功能,但是发附件有时候会出现为0的情况,可以尽快处理吗

su-chang commented 2 weeks ago

这个还没有明确排期,目前只有你这里有反馈过这个问题,其他客户都没有遇到过。所以优先级不会特别高。

应该是某些特定场景下才会出现,可以考虑选择多个文件进行测试看看。