使用背景
前段时间使用阿里云oss,需要在前端编译完成后,将编译好的某些静态资源文件上传到oss(如js,图片等),主要是为了结合阿里云CDN做缓存,增加页面访问速度。
这时需要在编译完成后增加上传oss的动作,之前一直使用ossutil来上传。
ossutil工具有一些弊端,比如上传文件时,他会挨个对比上传的每一个文件和oss中已有的文件,遇到文件名相同的,它会对比文件的修改时间,如果这个同名文件的修改时间在oss上的文件修改时间之后,则上传,否则不上传。
当要需要同步的文件越来越多时,这个对比会耗时很长。比如有10万个文件,实际上里面只有几个文件是新增的,这10万个文件全部会对比一次,导致文件的同步时间相当慢。
由于前端编译生成文件时,如果文件有改动时则会生成新的文件名(在原来的文件名上增加版本号),也就是说文件名相同的肯定都是旧文件不需要上传到oss的,根本没必要对比修改时间,可是ossutil没有“文件名相同则忽略上传”的功能。
使用ossfs则可以将oss直接挂载到本地目录,操作oss就像操作本地目录一样,那么我们可以用拷贝命令来忽略文件名相同的文件了,可以大量减少同步oss的时间。
c