[实战] 将博客图片迁移七牛云平台
**相信你看到这篇文章感兴趣应该是名站长吧,或许和我一样是名开源人士并乐于分享经验的博主。 **
一、前言:
我的文章全部是写于 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 '\nBackupBegin...\n' /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.\n\n' 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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· .NET 9 new features-C#13新的锁类型和语义
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 《SpringBoot》EasyExcel实现百万数据的导入导出
2016-06-20 ArchLinux下十八岁的感悟