• [实战] 将博客图片迁移七牛云平台


    **相信你看到这篇文章感兴趣应该是名站长吧,或许和我一样是名开源人士并乐于分享经验的博主。 **

    一、前言:

      我的文章全部是写于 Typora 并分享在(中间当然有过各种折腾)博客园的。之前一直有个想法就是:来进行一次**系统瘦身 + 转移重要图片数据备份 **至云服务商。

    二、廋身:

      ​先来说说为什么我需要进行系统瘦身,以及这件事之前发生了什么。作为一名博主,文章经常被莫名其妙的转载而且很多时候被转载的网站主体就是一个 ”黄赌毒”,只是通过各种技术手段得到了我们这些可怜的博主辛辛苦苦写的文章(关于它们为什么”这么做“以及”排名比源站高“ 可咨询相关人士) 。所以我想到的解决这个问题的方法就是:给自己的图片全部加上版权声明并且整体网站多处添加强调源站地址。

      那么给自己图片全部加上版权声明具体怎么做。因为我本身是有开发经历的,所以准备开发一款截图工具。大致功能就是捕获当前屏幕显示并后台发送至服务器。正当我一切都准备好准备开始干的时候,我发现了一款现成的工具 ShareX ,它支持各种文件的上传+ 版权设置。


    ”版权问题“ 解决了


    这样当别人强行克隆我的网站时,访客就不会再被欺骗了。

    三、分析:

      可真的全部被解决了吗?大家都知道蝴蝶效应,小小蝴蝶煽动翅膀带来公路飓风。可是我的问题可不是简单的”蝴蝶“,这么多图片文件的上传给服务器带来的问题包括:流量上下载、系统空间不够用、冗余,错误文件过多。先不说流量空间问题,如果出现意外突发情况,出现文件消失了也会受不了吧。


    图片就这样被大量堆积。

    所以,我们最好可以给服务器做次廋身
    更多查看来自哔哩哔哩我的投稿:https://www.bilibili.com/video/av10650767


    四、转移:

    I. 服务器环境:

    可以看到,这里有俩个域名。分别是 irabe.me.itxdm.me. 。正如我上面画的一样,itxdm.me 是我备案过的,然而 irabe.me 却没有,并且整个博客园所有图片全部调用 irabe.me 这个域名。

    II. 反向代理:

    **七牛并不允许未备案的进行访问 **,这个问题要怎么解决?

    1、绑定域名:

    2、请求转发:
    ➜  ~ Time Now 23:27:28 > vim /etc/nginx/conf.d/default_irabe.conf
    server {
        listen       80;
    #
    #    # Load configuration files for the default server block.
    #    include /etc/nginx/default.d/*.conf;
    #
        location / {
            proxy_pass http://itxdm.me/;
        }
    }
    

    注意:”/“ 表示根域名;proxy_pass 标识需要转发请求;域名不要填错是已经完成 步骤1 的域名

    3、上传文件:

    如果你的文件很多,不要使用浏览器上传。(经测试谷歌浏览器会无响应)

    推荐使用跨平台的 qfetch 进行文件上传。

    文档阅读地址https://developer.qiniu.com/kodo/tools/qfetch

    工具下载地址http://devtools.qiniu.com/qfetch-v1.7.zip

    五、效果图(欢迎体验):

    大家情况应该没我复杂。我后面还有些自动化的相关操作。

    ➜  /tmp cat /etc/cron.hourly/qfetch.sh 
    #!/bin/bash
    #@author:jiwenkangatech@foxmail.com
    #@function:backup png to qfetch
    set -b
    
    FD=/etc/nginx/conf.d/default_irabe.conf
    FD_BAK=/etc/nginx/conf.d/default_irabe.conf.bak
    SC=/etc/nginx/conf.d/default2_irabe.conf
    SC_BAK=/etc/nginx/conf.d/default2_irabe.conf.bak
    
    cd /etc/nginx/conf.d/
    if [ $PWD=='/etc/nginx/conf.d' ];then
        mv $FD $FD_BAK
        mv $SC_BAK $SC
        /etc/init.d/nginx restart || exit 1
    fi
    
    cd /tmp
    if [ $PWD=='/tmp' ];then
        cat /dev/null > /tmp/diff.txt
        find /home/wwwroot -type f -name "*.png" | 
            awk -F '/' '{ print "http://itxdm.me/"$4 }' >> /tmp/diff.txt
        printf '
    BackupBegin...
    '
        /usr/local/qfetch/qfetch -ak="wJ??????????????????????i9APRxeV" -sk="1eUUCxrF???????????iDKBmS" -bucket="it?????g" -file="diff.txt" -worker=800 -job="diff" 1>/dev/null 2>&1 &
        sleep 10m
        printf 'BackupEnd.
    
    '
    fi
    
    if [ -f $SC ] && [ -f $FD_BAK ];then
        mv $FD_BAK $FD
        mv $SC $SC_BAK
        /etc/init.d/nginx restart || exit 1
    fi
    
    
    exit 0
    
    
  • 相关阅读:
    vue 表格组件分享
    原创-整理了下常用的js数组 、对象、数字、字符串的操作方法
    h5 plus/h5+规范使用,模块索引,教你如何去看h5+的手册
    vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
    vuecli3 引入script 针对没有cmd amd require等方式的js
    vue新手入门指导,一篇让你学会vue技术栈,本人初学时候的文档
    node搭建本地服务器
    利用nodeJs anywhere搭建本地服务器环境
    vue封装组件的正确方式-封装类似elementui的组件
    微信小程序自定义模态框(字体图标)
  • 原文地址:https://www.cnblogs.com/itxdm/p/7056745.html
Copyright © 2020-2023  润新知