• zimg服务器图片数据迁移后,图片404异常的问题解决


    由于zimg特殊的图片存储结构及图片命名规则,其迁移数据应该当相当简单的,仅把对应的存储图片数据的文件夹复制即可。往往简单的东西总会有一些成本在里面,下面是我简单的迁移测试过程中遇到的一些问题,仅供参考【两服务的配置文件异同不影响数据迁移】

    先排除低版本迁移高版本产生的问题,比如zimg 2.x 文件格式为0_0,但新版本zimg 3.x存储格式变为0*0。

    1、直接从A服务器,将数据下载到windows本地,再将本地文件上传另一个服务器B

    2、直接从浏览器访问B服务上的图片地址,结果显示404 Not Found!

    3、查看zimg日志,由于是默认日志级别,并未实质性日志输出 

    (2017/08/18 15:44:50:056841 [ERROR] 192.168.1.179 fail pic:f1cfc5f870c192fbfbc6b24a0c390b89 w:0 h:0 p:1 g:0 x:-1 y:-1 r:0 q:75 f:none)

    4、修改B服务的zimg.lua配置文件,将日志级别调为7,即输出debug详细日志

            2017/08/18 15:44:50:055948 [DEBUG] Method: 0
    	2017/08/18 15:44:50:056029 [DEBUG] Got a GET request for </f1cfc5f870c192fbfbc6b24a0c390b89>
    	2017/08/18 15:44:50:056057 [DEBUG] md5 of request is <f1cfc5f870c192fbfbc6b24a0c390b89>
    	2017/08/18 15:44:50:056079 [DEBUG] get_img() start processing zimg request...
    	2017/08/18 15:44:50:056104 [DEBUG] whole_path: /usr/local/src/zimg/bin/img/967/1009/f1cfc5f870c192fbfbc6b24a0c390b89
    	2017/08/18 15:44:50:056133 [DEBUG] Path[/usr/local/src/zimg/bin/img/967/1009/f1cfc5f870c192fbfbc6b24a0c390b89] is A Dir.
    	2017/08/18 15:44:50:056164 [DEBUG] key: f1cfc5f870c192fbfbc6b24a0c390b89:0:0:1:0:-1:-1:0:75:none
    	2017/08/18 15:44:50:056322 [DEBUG] Cache Result: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY
    	2017/08/18 15:44:50:056365 [DEBUG] Start to Find the Image...
    	2017/08/18 15:44:50:056387 [DEBUG] 0rig File Path: /usr/local/src/zimg/bin/img/967/1009/f1cfc5f870c192fbfbc6b24a0c390b89/0*0
    	2017/08/18 15:44:50:056423 [DEBUG] Got the rsp_path: /usr/local/src/zimg/bin/img/967/1009/f1cfc5f870c192fbfbc6b24a0c390b89/0*0_p1_g0_-1*-1_r0_q75.none
    	2017/08/18 15:44:50:056517 [DEBUG] Cache Result: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY
    	2017/08/18 15:44:50:056551 [DEBUG] Not Hit Original Image Cache. Begin to Open it.
    	2017/08/18 15:44:50:056752 [DEBUG] Open Original Image From Disk Failed! 0 != 1
    	2017/08/18 15:44:50:056789 [DEBUG] Open Original Image From Disk Failed!
    	2017/08/18 15:44:50:056817 [DEBUG] zimg Requset Get Image[MD5: f1cfc5f870c192fbfbc6b24a0c390b89] Failed!
    	2017/08/18 15:44:50:056841 [ERROR] 192.168.1.179 fail pic:f1cfc5f870c192fbfbc6b24a0c390b89 w:0 h:0 p:1 g:0 x:-1 y:-1 r:0 q:75 f:none
    	2017/08/18 15:44:50:056881 [DEBUG] ============get_request_cb() ERROR!===============
    	2017/08/18 15:44:50:106540 [DEBUG] Method: 0
    	2017/08/18 15:44:50:106610 [DEBUG] favicon.ico Request, Denied.
    	2017/08/18 15:44:50:106641 [DEBUG] headers: 1

     

    5、仔细查看以上日志,发现实际请求的文件记录为

    /usr/local/src/zimg/bin/img/967/1009/f1cfc5f870c192fbfbc6b24a0c390b89/0*0_p1_g0_-1*-1_r0_q75.none

    再回到B服务器对应的目录位置,发现文件不存在。所以,404错误是正常的

    6、打开xftp(也可以是其它工具),发现传输到本地win过程中文件名已经发生了变更->0*0变成了0_0, win认为文件名中包含*是非法字符,直接转换掉了。(根本未考虑到文件名发生变更的问题)

    7、在A服务器进行文件tar.gz压缩处理,再下载到本地,文件名保持不变,再上传到B服务器对应目录,进行tar解压操作,即可。

    再次打开刚才迁移的文件,发现可以正常显示了。

    关注公众号,获取更多相关技术文章

    成长的乐趣,在于分享!
    大龄程序员,一路走来,感慨颇多。闲暇时写写字,希望能给同行人一点帮助。
    本文版权归作者growithus和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    30、深入浅出MFC学习笔记,多线程
    29、深入浅出MFC学习笔记,多重文件和视图
    5、程序设计实践读书笔记
    6、C++ Primer 4th 笔记,标准IO库(1)
    SQL Server流程控制 7,Try...Catch 语句
    TSQL:流程控制 4,Case 语句
    SQL Server事务处理(Tansaction)与锁(Lock)
    SQL Server9,流程控制 Execute 语句(*)
    SQL Server流程控制 2,If...Else 语句
    SQL Server流程控制 1,Begin...End 语句
  • 原文地址:https://www.cnblogs.com/growithus/p/11012223.html
Copyright © 2020-2023  润新知