• 请不要在回答技术问题时复制粘贴 AI 生成的内容
quietjosen
V2EX  ›  程序员

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

  •  
  •   quietjosen ·
    atjason · Nov 25, 2016 · 10690 views
    This topic created in 3632 days ago, the information mentioned may be changed or developed.
    关于 https ,最强势的就是苹果了: 2017 年 1 月 1 日后提交 App Store 的 App ,必须全部使用 https (有少量例外)

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

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

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

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

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

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

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

    给我女儿做了个占域名的站, https://www.xuxinquan.com/,就是这样处理的。
    jarlyyn
    jarlyyn
    Nov 25, 2016
    25
    @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
    Drops
    Nov 25, 2016 via Android
    26
    @quietjosen 对,说是测试域名
    wangjiezheng
    wangjiezheng
    Nov 25, 2016
    27
    @yizhilee 域名没有备案的话,是无法使用的。 其实域名备案,申请个证书,比你选择迁移应该要方便不少。据我了解,二级地址,又拍云是支持 https 的。
    idblife
    idblife
    Nov 25, 2016
    28
    s3 好用不多解释
    wordpress 无缝链接,前端加上 cloudflare 免费 cdn 省钱
    Felldeadbird
    Felldeadbird
    Nov 25, 2016
    29
    一直图片都是放在本地的。个人站也不会说缺这点 空间 和打开速度。反正日流量也就是 平均 50 到偶然峰值 200 天
    doubleflower
    doubleflower
    Nov 25, 2016 via Android
    30
    图片不是 https 也能正常显示啊,这有什么讲究吗
    jarlyyn
    jarlyyn
    Nov 25, 2016
    31
    @doubleflower

    会报安全错误

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

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

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

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

    但,图床搬家的事还没搞…
    ershiwo
    ershiwo
    Nov 26, 2016
    69
    @joniking 嗯,我也只是加了 HSTS 头。这个是以后的要求。
    ershiwo
    ershiwo
    Nov 26, 2016
    70
    @quietjosen 微博图床要换的话有一个方法,把前面的 ww* 替换成 ws* 就可以用 https 访问了。
    lslqtz
    lslqtz
    Nov 29, 2016
    71
    @jarlyyn 可以通过 meta 设置 ref 策略
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4522 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 93ms · UTC 09:40 · PVG 17:40 · LAX 01:40 · JFK 04:40
    ♥ Do have faith in what you're doing.