关于用 302 跳转来切换图床节点的效率问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
evlos
V2EX    程序员

关于用 302 跳转来切换图床节点的效率问题

  •  
  •   evlos 2012-08-10 13:09:32 +08:00 4883 次点击
    这是一个创建于 4884 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设我们有多个图床节点,但是都有流量限制或者不稳定。
    假设图床节点储存的图片文件是同步的。
    假设我们用的是 Wordpress,图片是以下面的形式混合文章文本在数据库里储存在一起的。

    <img src="http://www.rainmoe.com/wp-content/uploads/2012/06/02601_eveningsinglesunray_2560x1600.jpg" alt="" title="02601_eveningsinglesunray_2560x1600" width="960" height="284" class="alignnone size-full wp-image-2418" />

    如果要切换图床,需要用 sql 在数据库里面批量替换上面 img 标签中的 url。这是普遍的做法,但是我在想能不能换个思路。
    比如把上面 img 标签中的地址变成这样。

    http://www.rainmoe.com/302.php?y=2012&m=06&f=02601_eveningsinglesunray_2560x1600.jpg

    浏览器读取的时候用 302.php 跳转到目标图床节点的地址。
    这样如果频繁切换图床节点(极端状况下),数据库就木有鸭梨鸟。
    之前测试了一下这样是可行的。

    但是不知道客户端的效率问题怎么样(浏览器进一个页面会发生十几次302跳转)?
    服务器端应该没问题,毕竟就发个header。

    不知道大家有什么想法 =w=
    23 条回复    1970-01-01 08:00:00 +08:00
    icyflash
        1
    icyflash  
       2012-08-10 13:15:00 +08:00   1
    存的时候不用绝对地址不就好了。 {0}wp-content/uploads/2012/06/02601_eveningsinglesunray_2560x1600.jpg,输出的时候format一下
    qq286735628
        2
    qq286735628  
       2012-08-10 13:18:33 +08:00
    之前我做一个项目,用到html5的manifest里面的fallback,也是有计划用302做跳转,这样就可以固定url,统一在一个接请求的地方修改配置即可。

    我上次操作的时候,因为都是XHR请求,这种请求对302的处理有点诡异,最后就没继续这样做,改用其他方法了。

    你的需求只是对图片进行302,应该没什么问题。

    不过一个页面如果有很多张图片,意味这客户端的请求数多了一倍。

    /t/44214
    qq286735628
        3
    qq286735628  
       2012-08-10 13:19:53 +08:00   1
    或者还有一个方法,专门设置一个子域名,为图床。
    然后子域名对应的目录格式不改变。

    每次更换图床,修改DNS的记录即可。
    evlos
        4
    evlos  
    OP
       2012-08-10 13:22:50 +08:00
    @icyflash 啊啊这的确是一个好方法,不好意思我木有说清楚,还假设图床节点中存在一个 amazon s3,那么可能就没办法用相同的 url 结构了。

    但是还是要多谢你的思路。这样的话可以用 wordpress 的短代码功能,存的时候存成 [img y="2012" m="06" f="02601_eveningsinglesunray_2560x1600.jpg"]
    evlos
        5
    evlos  
    OP
       2012-08-10 13:30:10 +08:00
    @qq286735628 嗯嗯,子域名也是一个好办法,但是前提是图床要支持绑定域名才行,稍微有点局限性,因为比如 v2ex 用的就是新浪微博相册。

    - - XHR+302 的确感觉有点诡异。。看样子 302 (非wordpress),短代码(wordpress)两种方法都不错。
    aveline
        6
    aveline  
       2012-08-10 13:35:04 +08:00   1
    @evlos 不然这样?

    <img src="placeholder.png" data-image="/img.png" class="image1" />

    <script>
    $(function () {
    $('img.image1').each(function() {
    $(this).attr('src', 'http://xxyyzz/x0' + $(this).attr('data-image'));
    })
    })
    </script>
    evlos
        7
    evlos  
    OP
       2012-08-10 13:40:16 +08:00   2
    @aveline 这。。这直接在前端操作。。好厉害的想法!!这个可以有! OwO
    额,那个,话说这里应该用 $(this).data('image'); 吧。 =w=
    aveline
        8
    aveline  
       2012-08-10 14:04:33 +08:00
    @evlos 额...我一直是attr的...out了...
    evlos
        9
    evlos  
    OP
       2012-08-10 14:05:32 +08:00
    @aveline 啊啊是新版本的特性啦 =w=
    CupTools
        10
    CupTools  
       2012-08-10 14:25:43 +08:00
    @evlos 你最近死去哪了,讨厌~
    evlos
        11
    evlos  
    OP
       2012-08-10 14:28:30 +08:00
    @CupTools 自重 =w=。这不是一直在嘛。
    CupTools
        12
    CupTools  
       2012-08-10 14:37:17 +08:00
    @evlos 你没有找我,讨厌~
    evlos
        13
    evlos  
    OP
       2012-08-10 14:41:34 +08:00
    @CupTools - = 额,越来越懒了嘛。
    evlos
        14
    evlos  
    OP
       2012-08-10 14:42:04 +08:00
    擦,这段对话怎么这么 yooooo 。。。。。。
    aveline
        15
    aveline  
       2012-08-10 14:45:25 +08:00
    @evlos 我也要和你搅基
    @CupTools 来3P吧XD
    CupTools
        16
    CupTools  
       2012-08-10 14:46:18 +08:00
    @evlos 你怎么不上IM了
    @aveline 把菊花洗干净没有
    evlos
        17
    evlos  
    OP
       2012-08-10 14:50:49 +08:00
    @aveline @CupTools 你们都给我自重 >A<

    @CupTools 啊啊,年初刚换 MAC 的时候用 message 登录了 gtalk,后来没怎么用就给忘记了 >~<。刚刚弄好了 =w=
    aveline
        18
    aveline  
       2012-08-10 15:03:41 +08:00
    @evlos 求联系方式!加我Gtalk嘛 [email protected]
    master
        19
    master  
       2012-08-11 02:07:28 +08:00   1
    话说为啥要这么麻烦呢。。。直接在webserver里面把uploads目录的请求rewrite不就好了吗。。。。。
    evlos
        20
    evlos  
    OP
       2012-08-11 03:26:27 +08:00
    @master 好球!这下数据库都不用改了 OwO
    liyandong
        21
    liyandong  
       2012-08-11 09:57:58 +08:00
    伪静态重写!
    CupTools
        22
    CupTools  
       2012-08-11 13:38:52 +08:00
    @evlos 你Message ID多少,GT老不上
    evlos
        23
    evlos  
    OP
       2012-08-11 14:08:32 +08:00
    @CupTools 睡觉时间怎么上 - -。。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1015 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:52 PVG 02:52 LAX 10:52 JFK 13:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86