内容管理中没有按时间排序也没有按时间搜索,就连想到最后一页都做不到,也看不到总共有多少页,太不方便了,快点改进一下吧
内容管理中没有按时间排序也没有按时间搜索,就连想到最后一页都做不到,也看不到总共有多少页,太不方便了,快点改进一下吧
既然是以文件名(key)的ascii码排序,我想到的解决办法,每次上传文件,文件的命名规则倒着来就可行了吧。
比如用未来30年的一个固定时间-当前时间转字符串, 所出来的时间串就是倒着的吧。
如1,2,3,5,6,7,8,9,10, 用100减
得:99,98,97,96,95,94,93,92,91(那么按文件名KEY排序91,92,...99,最后上传的拍最前面了)
七牛目前是采用的键值对存储,文件的排序是按照文件名(key)的ascii码的排序,这样做的好处是,在空间存在大量文件的时候,能够第一时间根据文件的前缀检索到文件名并访问到资源。
排序功能没有提供的最根本原因是,当空间存在大量文件的时候,对文件的排序将会是非常耗时的做法,而且如果是非异步操作,很可能会超时,能否了解一下按照时间搜索排序的具体业务场景。因为如果是服务端上传,那么记录相关文件文件名和上传时间,然后通过服务端记录上传信息即可;如果是客户端上传,可以回调给业务服务器,回调时提供上传的文件魔法变量名$(key)和$(putTime),就可以获取文件的文件名和上传时间,这样服务端就可以自行排序了。
至于没有提供列取文件到最后一页的服务,是因为列取的操作并不是一次性将用户在数据库的所有的文件都列举完,因为同样是空间存在大量文件的时候,列举所有的文件内容将是非常耗时的操作,所以我们再内容管理的文件列举操作是动态列举的,调用的是list接口,每页列取后记录
marker
值,这样的好处是,缩短列取文件的时间,目前七牛的计算性能确实还需要很大的提高,才能动态计算出最后一次list的marker值,并列出尾页。