用对象存储来做聊天记录图片或文件保存的优缺点以及越不过的坎,堪称无解

IM中非文字消息的保存方案有2种
(暂不考虑用base64保存法)
1:为服务器保存,这样带宽是个严重问题,严重不可取
2:对象存储,(oss,腾讯的cos,七牛...)各家性能不一,目的只有一个,解放带宽

第二种看似是银弹,可以对于WEB应用中任意可读取img的src的情况,盗链是个严重问题
解决盗链也很简单,采用签名,访问鉴权,如果我的历史消息图片有100条,每访问一条都要鉴权,对服务器和客户端的效率都是个灾难,而第一种我可以通过图片服务器判断来源head判断是否从我的应用打开。使得随便打开一个img的url不可访问。

不知道大牛们有没有遇到这个坎。

阅读 4.5k
1 个回答
新手上路,请多包涵

刚好在思考这个问题,搜到这里,就顺便答下。

你可以用Fiddler抓包看看其他IM是怎么做的,比如手机QQ。

手机QQ的C2C单聊发送的图片,对方收到的就是个url,不需要鉴权,任何人拿到这个url都可以访问这个图片。

宣传栏