V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
quietjosen
V2EX  ›  程序员

全站 https 越来越流行,你的图床要搬家吗?

  •  
  •   quietjosen ·
    atjason · 2016-11-25 13:54:42 +08:00 · 9520 次点击
    这是一个创建于 2917 天前的主题,其中的信息可能已经有所发展或是发生改变。
    关于 https ,最强势的就是苹果了: 2017 年 1 月 1 日后提交 App Store 的 App ,必须全部使用 https (有少量例外)

    不管怎样, https 确实是越来越流行。你的博客、产品,在改造吗?

    我在改造博客,其中有一项有点麻烦:图床。我的博客因为时间有点长,图床也很杂:又拍相册、微博图床、七牛、等等,要

    1. 把所有之前文章中的图片全部找出来
    2. 搬家至支持 https 的图床
    3. 更新文章中的图片链接

    想想都是件挺闹心的事。大家是怎么解决这个问题的?

    另外,我在想我的 [iPic]( http://toolinbox.net/iPic/) 是不是要支持图床搬家功能。有些需求太小众、又比较麻烦,纠结…如果需求的朋友多,倒是可以考虑一下下…
    71 条回复    2016-11-29 11:52:29 +08:00
    vultr
        1
    vultr  
       2016-11-25 14:07:17 +08:00 via Android
    其实一点也不麻烦,用 wget ,一条命令就可以把全部图片拿回来,顺便还可以帮你把博客全静态化了,如果你想这样的话。
    lazycat
        2
    lazycat  
       2016-11-25 14:07:48 +08:00
    觉得麻烦你可以自己写一个 https 的代理处理所有的图片(误
    quietjosen
        3
    quietjosen  
    OP
       2016-11-25 14:09:23 +08:00
    @vultr 这方法不错。显露了,自己后端明显很弱…
    quietjosen
        4
    quietjosen  
    OP
       2016-11-25 14:10:08 +08:00
    @lazycat 哎,听起来还是学习学习才能搞这事,水平啊…
    BSD
        5
    BSD  
       2016-11-25 14:10:57 +08:00
    你的服务器硬盘是有多小?一个人 blog 的图片能有多少呢?流量或存贮空间应该都不是太大吧?
    hteen
        6
    hteen  
       2016-11-25 14:12:22 +08:00
    ^_^ 机智的我从一开始就是 HTTPS
    BSD
        7
    BSD  
       2016-11-25 14:12:53 +08:00
    @lazycat 那样的话,进出双向的流量都算在楼主头上了,他用外部图床,估计就是为了省流量。
    jarlyyn
        8
    jarlyyn  
       2016-11-25 14:13:42 +08:00
    你的问题不是图床的问题。

    搬家不是应该是直接在 nginx 里用 sub_filter 把仓库地址给替换了吗?
    lifeha
        9
    lifeha  
       2016-11-25 14:13:49 +08:00
    七牛和又拍都可以绑定域名的时候上传证书就可以 https 了
    misaka19000
        10
    misaka19000  
       2016-11-25 14:27:05 +08:00
    我博客的图片从一开始就是放在本地的。。。
    Drops
        11
    Drops  
       2016-11-25 14:34:00 +08:00 via Android
    前些天,因为要上 HTTPS ,手工替换了所有博客图片到七牛,但是感觉还是有点不放心,技术太弱了。。。
    quietjosen
        12
    quietjosen  
    OP
       2016-11-25 14:46:50 +08:00
    @BSD @jarlyyn
    倒不是硬盘空间、流量的问题,更多的是历史原因。毕竟一开始写博客的时侯并不会想那么多,有图片就用、能打开就行。现在要把各个地方的图片统一到一个支持 https 图床,有些麻烦。
    quietjosen
        13
    quietjosen  
    OP
       2016-11-25 14:47:25 +08:00
    @hteen 这是真机智 👍
    quietjosen
        14
    quietjosen  
    OP
       2016-11-25 14:47:48 +08:00
    @lifeha 新图床是好办的,难办的是已有图片。
    quietjosen
        15
    quietjosen  
    OP
       2016-11-25 14:48:34 +08:00
    @misaka19000 本地的是很好处理的。唯一的问题就是: Markdown 文本复制到别的地方时,相对链接就不干活了。
    quietjosen
        16
    quietjosen  
    OP
       2016-11-25 14:48:53 +08:00
    @Drops 是不放心七牛吗?还是?
    Tink
        17
    Tink  
       2016-11-25 14:51:11 +08:00 via iPhone
    我准备用脚本直接操作数据库,把 http 的图片地址全部拿出来下载到本地在上传到 https 再写回数据库
    wangjiezheng
        18
    wangjiezheng  
       2016-11-25 14:52:44 +08:00
    用又拍的话,直接可以在绑定域名时候上传证书,就可以 https 了,而且自主上传证书,不用联系客服,很方便啊。省去一堆麻烦
    183387594
        19
    183387594  
       2016-11-25 14:55:23 +08:00
    我做采集的 各种站点的图片 怎么办
    eoo
        20
    eoo  
       2016-11-25 15:10:59 +08:00 via Android
    @183387594 最简单 把 http 踢桃成 https 逃。。。。
    misaka19000
        21
    misaka19000  
       2016-11-25 15:20:57 +08:00
    @quietjosen 额,博客的域名又不会变
    xiaoz
        22
    xiaoz  
       2016-11-25 15:23:59 +08:00
    博客一开始就是本地和远端同时存储了图片,过度到 https 就比较轻松啦。博客图片放在又拍的,又拍可以自主部署 SSL 比较方便,放个博客: https://www.xiaoz.me/ ,逃~
    yizhilee
        23
    yizhilee  
       2016-11-25 15:31:44 +08:00
    @lifeha @wangjiezheng 博客域名没有备案,七牛和又拍的二级地址支持 https 吗?
    jarlyyn
        24
    jarlyyn  
       2016-11-25 15:35:15 +08:00
    @yizhilee
    腾讯云新用户送半年每个月 50G 免费流量,听说过期后每个月也能有 10G 免费流量,没验证过。

    他的 cdn 可以有用自带的 https2 级链接。 nginx 里做个替换就可以了。

    给我女儿做了个占域名的站, https://www.xuxinquan.com/,就是这样处理的。
    jarlyyn
        25
    jarlyyn  
       2016-11-25 15:39:53 +08:00
    @yizhilee

    nginx 配置

    server {

    server_name www.xuxinquan.com;

    listen 443;

    index index.html;

    ssl on;

    location /

    {

    sub_filter '/skin/' 'https://xuxinquan-1252895778.file.myqcloud.com/skin/';

    sub_filter_once off;

    }

    root /dockers/www.xuxinquan.com/data/src;

    ssl_certificate /dockers/nginx/ssl/www.xuxinquan.com.cer;

    ssl_certificate_key /dockers/nginx/ssl/www.xuxinquan.com.key;

    }


    需要切换图床的话直接把内容替换了就可以了。

    当然 /skin 比较容易误判。但我就是个纯静态 html ,就没改复杂的名字。
    Drops
        26
    Drops  
       2016-11-25 15:57:53 +08:00 via Android
    @quietjosen 对,说是测试域名
    wangjiezheng
        27
    wangjiezheng  
       2016-11-25 16:04:37 +08:00
    @yizhilee 域名没有备案的话,是无法使用的。 其实域名备案,申请个证书,比你选择迁移应该要方便不少。据我了解,二级地址,又拍云是支持 https 的。
    idblife
        28
    idblife  
       2016-11-25 16:07:20 +08:00
    s3 好用不多解释
    wordpress 无缝链接,前端加上 cloudflare 免费 cdn 省钱
    Felldeadbird
        29
    Felldeadbird  
       2016-11-25 16:24:50 +08:00
    一直图片都是放在本地的。个人站也不会说缺这点 空间 和打开速度。反正日流量也就是 平均 50 到偶然峰值 200 天
    doubleflower
        30
    doubleflower  
       2016-11-25 16:32:44 +08:00 via Android
    图片不是 https 也能正常显示啊,这有什么讲究吗
    jarlyyn
        31
    jarlyyn  
       2016-11-25 16:40:19 +08:00
    @doubleflower

    会报安全错误

    会无法反盗链( https 页面访问 Http 资源时会不带 ref)
    183387594
        32
    183387594  
       2016-11-25 17:03:22 +08:00
    @eoo 图片都是别人站点的,怎么跳啊。用自己服务器做中转?
    SlipStupig
        33
    SlipStupig  
       2016-11-25 17:09:27 +08:00
    nginx 反向代理
    eoo
        34
    eoo  
       2016-11-25 17:15:46 +08:00 via Android
    @183387594 就直接替换成 https 啊 反正能正常显示就行 复杂的方法 有很多 比如用 Nginx 反向代理
    yizhilee
        35
    yizhilee  
       2016-11-25 17:28:17 +08:00
    @jarlyyn 我前两天还领了腾讯云的 CDN 礼包,当时还试了一下以为不支持 https ,我再去看看,谢谢你!
    @wangjiezheng 已经上了 SSL 证书,图片在服务器上,想用 CDN 加速图片但又不想备案,只能用二级地址。七牛的二级地址好像也支持 https ,但是我没有找到在哪儿设置。
    maye526
        36
    maye526  
       2016-11-25 17:30:13 +08:00
    用又拍,还不错的
    jarlyyn
        37
    jarlyyn  
       2016-11-25 17:34:10 +08:00
    @yizhilee
    要在 cdn 里,不在云对象里。

    云对象是没 https 的。必须指定对应的 cdn 才行。
    quietjosen
        38
    quietjosen  
    OP
       2016-11-25 17:37:41 +08:00
    @Tink 我目前是全静态的,没有数据库…
    quietjosen
        39
    quietjosen  
    OP
       2016-11-25 17:38:00 +08:00
    @wangjiezheng 前提是绑定域名,哎,是个痛啊
    quietjosen
        40
    quietjosen  
    OP
       2016-11-25 17:39:26 +08:00
    @misaka19000 哦,你的图片是用的带域名的全路径、不是相对路径,对吧?

    我是说,如果是全路径的话,可以把 Markdown 的文本复制到任意其他地方,比如从博客到 V2EX ,而不用担心图片地址无效。
    quietjosen
        41
    quietjosen  
    OP
       2016-11-25 17:41:30 +08:00
    @Drops 哦,七牛的测试域名确实不适合生产环境,绑定域名(前提是域名先备案)后,可以用自己的域名,就不用担心这个问题了。
    183387594
        42
    183387594  
       2016-11-25 17:44:10 +08:00
    @eoo 别人家的图片不支持 https 的
    lslqtz
        43
    lslqtz  
       2016-11-25 18:19:21 +08:00 via iPhone
    @jarlyyn 不会报的,能正常访问。
    可以通过 meta 标签设置 ref
    yizhilee
        44
    yizhilee  
       2016-11-25 18:30:25 +08:00
    @jarlyyn 十分感谢,问题已解决,之前是因为 CDN 设置出错了: 1. 对象存储不支持 https 回源; 2.我开了防盗链所以直接上传在本地测试也失败了。
    zhangneww
        45
    zhangneww  
       2016-11-25 18:59:18 +08:00
    博客放在 coding ,包括图片, https 用的 cloudflare 的。。。
    justyy
        46
    justyy  
       2016-11-25 19:04:19 +08:00
    自己做的免费图床, 好用: https://uploadbeta.com/picture-gallery/?sort=1

    1.在墙外,主机 VPS 在英国 (6 核 3G 内存,每月 5TB 流量)
    2.cloudflare PRO 加速
    3.域名 privacy
    4.支持 API
    5.只要不传露点的就 不用担心被删
    6.不用注册,无限上传
    Quaintjade
        47
    Quaintjade  
       2016-11-25 20:34:45 +08:00 via Android
    以前博客图片放七牛,后来好像不支持 https 了,就自己搭反代,顺便把 nginx 基本配置学会了……
    zzzmode
        48
    zzzmode  
       2016-11-25 20:45:53 +08:00
    博客放 github 上,绑定域名用 cloudflare 开了 https ,顺便给 vps 空网站也加上了 https ,开启 hsts
    ershiwo
        49
    ershiwo  
       2016-11-25 21:20:04 +08:00
    @yizhilee 七牛的 *.qnssl.com 支持 HTTPS ,但不支持 HTTP/2 。不过 https 流量是收费的, 0 ~ 100 TB 是 0.36 元 / GB 。
    这个月流量突然增加,我想是时候找回我那个被冻结的又拍账号了(
    takashiki
        50
    takashiki  
       2016-11-25 21:42:04 +08:00
    我的图片之前放贴图库挂过之后就自建图片 302 服务了,一图多图床,不过使用下来觉得也不是一个特别好的方案
    yizhilee
        51
    yizhilee  
       2016-11-25 22:13:46 +08:00
    @ershiwo 我的又拍云账号之前也被冻结了……后来找客服给我解冻的。
    jimzhong
        52
    jimzhong  
       2016-11-25 22:36:49 +08:00
    个人博客没有必要 https 吧
    quietjosen
        53
    quietjosen  
    OP
       2016-11-25 22:39:23 +08:00
    @zzzmode 这方案可以
    quietjosen
        54
    quietjosen  
    OP
       2016-11-25 22:39:59 +08:00
    @ershiwo 我目前也在用七牛的 https ,但毕竟是七牛的测试域名,不放心。在考虑阿里云 OSS
    quietjosen
        55
    quietjosen  
    OP
       2016-11-25 22:40:22 +08:00
    @takashiki 自建图床,总是觉得不如用服务,毕竟个人的量小
    quietjosen
        56
    quietjosen  
    OP
       2016-11-25 22:40:44 +08:00
    @jimzhong 一方面这是趋势,另一方面主要是配合 Mac App Store
    ershiwo
        57
    ershiwo  
       2016-11-25 23:01:31 +08:00
    @quietjosen 国内服务都要备案,这个跳不开。不考虑国内用户的话 Cloudflare 其实就够了。
    jimzhong
        58
    jimzhong  
       2016-11-25 23:08:27 +08:00
    @quietjosen HTTPS 对缓存是很不友好的。而且把 Private Key 给 CDN 我是不太放心的。
    joniking
        59
    joniking  
       2016-11-26 00:22:35 +08:00
    建站之初就不怕麻烦地选择了全站 HTTPS ,一直测试安全系数为 A+才罢休的路过……
    quietjosen
        60
    quietjosen  
    OP
       2016-11-26 00:23:24 +08:00
    @ershiwo 可是,我还是想让网站快一点…
    quietjosen
        61
    quietjosen  
    OP
       2016-11-26 00:24:01 +08:00
    @jimzhong 谢谢提醒,不过没办法,还是要硬着头皮上 https
    quietjosen
        62
    quietjosen  
    OP
       2016-11-26 00:24:13 +08:00
    @joniking 明智之举
    bombless
        63
    bombless  
       2016-11-26 12:49:59 +08:00 via Android
    ……最近不是说 ios 又不强制 https 了么
    bombless
        64
    bombless  
       2016-11-26 12:51:26 +08:00 via Android
    cloudflare 可以是你网站是 http 的然后它分发的时候给你弄成 https 的
    ershiwo
        65
    ershiwo  
       2016-11-26 14:14:14 +08:00
    @joniking 现在好像要进 HSTS Preload 才能给 A+
    ershiwo
        66
    ershiwo  
       2016-11-26 14:14:58 +08:00
    @quietjosen 那最好的解决办法就是备案然后用国内服务了┑( ̄Д  ̄)┍
    joniking
        67
    joniking  
       2016-11-26 18:39:03 +08:00
    @ershiwo 反正我是没有 Preload
    quietjosen
        68
    quietjosen  
    OP
       2016-11-26 22:15:04 +08:00
    @ershiwo 目前我只将 https 做到 A-;毕竟是小站,不再折腾更高了。

    但,图床搬家的事还没搞…
    ershiwo
        69
    ershiwo  
       2016-11-26 22:53:30 +08:00
    @joniking 嗯,我也只是加了 HSTS 头。这个是以后的要求。
    ershiwo
        70
    ershiwo  
       2016-11-26 22:54:41 +08:00
    @quietjosen 微博图床要换的话有一个方法,把前面的 ww* 替换成 ws* 就可以用 https 访问了。
    lslqtz
        71
    lslqtz  
       2016-11-29 11:52:29 +08:00
    @jarlyyn 可以通过 meta 设置 ref 策略
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.