网站备份很重要:WordPress七牛云镜像存储插件,一键镜像静态资源到七牛云!
七牛云支持CDN镜像存储,无需将原来的图片上传到七牛云的服务器上,WordPress七牛云镜像存储插件,实现一键将WordPress博客静态文件CDN加速。注册七牛云(七牛云官网)即可每月免费使用20GB流量,包含10GB境内+10GB其他地区静态HTTP下载流量,对于个人网站来说完全够用了!插件功能:一键将WordPress的静态资源镜像到七牛云;支持将远程图片保存并镜像到七牛云;使用七牛云数据处理功能给图片设置水印。WordPress七牛云镜像存储插件下载地址:https://2bcd.com/wp-content/themes/begin/down.php?id=151本首发于 主机教程网原文链接:https://2bcd.com/151.html
基于阿里云服务器定时备份网站数据到七牛云详细教程
1,可以用宝塔面板来定时备份网站到网站所在的云服务器。【自己服务器有可能突然访问不了,宝塔面板也访问不了】2,可以用宝塔面板来定时备份网站数据到七牛云空间,而不是你自己的服务器。【本文讲的就是这种,非常安全高效】往期教程宝塔面板教程(1)基于云服务器搭建宝塔面板教程最全详解宝塔面板教程(2)宝塔面板添加WordPress站点详细图文教程宝塔面板教程(3)基于宝塔面板成功配置网站SSL安全证书宝塔面板教程(4)WordPress网站的备份与恢复(宝塔面板)宝塔面板教程(5)WordPress网站程序和数据库定时备份到七牛云存储图文教程宝塔面板教程(6)WordPress网站程序和数据库定时备份到又拍云存储空间图文教程1 拥有一个网站站点具体教程就不多讲了,参考教程:宝塔面板搭建WordPress网站图文教程2 有一个七牛云账号七牛云账号注册:七牛云注册存储对象价格说明:https://www.qiniu.com/prices/kodo 【免费空间10GB,中小站长完全够用】2.1.新建对象存储空间我这里特意新建了一个空间:arisono-sites-backup特别注意:这个存储对象空间的名称后面(宝塔面板七牛云存储插件)需要用到。2.2.七牛云对象存储自定义域名2.3.为你的自定义域名进行CNAME域名解析参考官网教程:如何配置域名的 CNAME 其实过程很简单,不用看教程,看我的操作截图就可以。2.4.获取AccessKey/SecretKey3 宝塔面板安装七牛云插件更换为自己的备案域名,可以长久使用。七牛云的测试域名只够使用一个月的时间。4 阿里云域名配置CNAME5 宝塔面板定时备份网站和数据库宝塔面板一定要安装好七牛云存储插件并配置好存储密钥,域名等信息之后,才能进行下面的这步。6 查看七牛云备份文件宝塔面板计划任务生成之后,我们执行下任务,然后就去七牛云后台看下备份的文件和数据是否成功!如下图,我的网站和数据库都备份成功了。终于不用担心网站丢失了!文章原文 http://tencent.yundashi168.com/740.html
七牛云存储发布同步上传客户端 - QRSBox
QRSBox - 七牛云存储同步上传客户端QRSBox 是一个 “七牛云存储” 的同步上传客户端,目前是v0.6.0版本。这个东西的存在可能会让人困惑。以下是一些 FAQ:Q: “七牛云存储” 是网盘么?为什么会有同步客户端?A: “七牛云存储” 不是网盘。这个同步客户端也不是给终端用户用的,但是确实有一些七牛的客户需要好用的上传工具,所以才有了它。对它正确的理解是,QRSBox 是 “七牛云存储” 命令行同步工具 qrsync 的 GUI 版本(当然,其实和 qrsync 还是略有有区别的,见下),仅此而已。Q: QRSBox 是不是基于 “七牛云存储” 上的一个网盘 DEMO?A: “QRSBox” 不是 DEMO,他是 “七牛云存储” 本身的客户端。Q: 为啥要有 QRSBox 这样的东西?七牛为啥不直接支持 FTP 就好了?A: FTP 是比较过时的玩意,在主流的互联网场合下都难以见到它的踪影。七牛一直致力于做更好用更易用的云存储。我们需要创造。所以我们更愿意吸收像 Dropbox 这类同步网盘的优点,来提升七牛云存储的体验。相比 FTP,QRSBox 有如下优点:QRSBox 支持目录监控。你向目录里面增加、修改文件,都可以被自动同步到“七牛云存储”。QRSBox 支持增量同步。下次同步的时候,只会同步那些新增的或者修改的内容。QRSBox 支持断点续上传,无论网络多差,QRSBox 都要确保尽量让文件上传成功。Q: 我本地目录删除一个文件,会在七牛云存储的空间里面也相应删除对应的文件么?A: 不会。QRSBox 和 Dropbox 这样的同步网盘的差别在于:QRSBox 同步是单向的,QRSBox 只是单向上传的工具,只不过它在努力把上传功能做到了极致的简单易用。QRSBox 并不同步本地的“删除”行为。这个还是和 QRSBox 定位是上传工具有关。要删除文件,建议你到七牛的 portal 后台去删除,这有点麻烦,但是反过来也有另外的好处,就是你同步完一个文件后,本地就可以直接删除它以释放本地的磁盘空间。Q: QRSBox 和 QRSync 命令行工具有啥区别?A: 除了 qrsbox 是 GUI 而 qrsync 是命令行外,两者最大的不同是 qrsbox 会监控目录变化,属于 “守护程序”,而 qrsync 在一次同步任务完成时就结束。简单可以理解为:qrsbox = fs monitor + qrsyncQRSBoxCli - 七牛云存储同步上传客户端(命令行版)与 QRSBox v0.6.0 同步发布的还有整个 devtools(含新增的 qrsboxcli 命令行工具)。QRSBoxCli 是 QRSBox 的命令行版。相比 QRSync 命令行工具而言,QRSBoxCli 额外具备目录监控能力,自然也就更好用 :-)QRSBoxCli 使用方法如下:配置用如下命令:qrsboxcli init <AccessKey> <SecretKey> <SyncDir> <Bucket> [<KeyPrefix>]这是将本地的 <SyncDir> 目录同步到七牛云存储 <Bucket> 空间。<KeyPrefix> 是可选的,如果指定,那么所有上传到 <Bucket> 空间中的文件会被加上 <KeyPrefix> 前缀。同步完成配置后,我们就可以开始同步了。用如下命令:qrsboxcli sync &同步过程建议后台执行,这是为什么这里加了 & 符号。查看同步状态任何时刻,你都可以用如下命令查看同步的状态:qrsboxcli logQRSBox 相关资源下载QRSBoxqrsbox v0.6.0 windows_386QRSBoxCliqrsboxcli v2.5.20130921 darwin_amd64qrsboxcli v2.5.20130921 linux_amd64qrsboxcli v2.5.20130921 linux_386qrsboxcli v2.5.20130921 windows_386via 七牛云存储知识库
discuz3.2怎么使用七牛云或者阿里oss存储论坛附件?
discuz3.2 怎么使用七牛云或者阿里oss 存储论坛附件?
云存储:阿里云 和 七牛 的比较
结论:
阿里云存储
七牛云存储
标准:REST、HTTP
99%符合
50%
基本功能:送二级域名、绑定域名、CDN
支持
支持
自定义文件HTTP header
支持
少量支持
高级服务:图片处理
不提供
很完善地提供
收费策略
收费
小流量免费。大流量收费。
官方PHP SDK
差,依赖亚马逊http库,而不是PHP官方PEAR HTTP_Request2
差
在国内的VPS服务器厂商中,阿里云做的很好,所以项目倾向于使用阿里云开放存储服务(aliyun OSS)。
把阿里云存储官方混乱的PHP SDK 重写成PEAR,然后作为apk下载使用。
然后想把图片服务器也迁移到云存储,这样不占用VPS带宽。这时候才发现 阿里云OSS 只有最简单的文件存储功能,不支持图片处理。
比如图片服务器最常用的功能:
1、上传一张原图,实时自动生成任意分辨率的各种图片
比如原图
http://example.com/2.jpg
然后请求任意分辨率,请求时服务器自动生成并输出,比如
http://example.com/2.jpg?resolution=1280x720
2、格式自动转换
比如http://example.com/2.jpg?format=png
由于阿里云存储不支持图片功能,所以不能用了。考虑迁移到七牛。
参考七牛官方PHP SDK,重写成PHP PEAR包,发现七牛API不是REST。
API对比如下:
阿里云存储
七牛云存储
上传文件
HTTP PUT 资源URI
HTTP POST up.qiniu.com
删除文件
HTTP DELETE 资源URI
HTTP POST rs.qbox.me
认证
HTTP header Authorization
一会儿使用HTTP header Authorization,一会儿使用POST token
阿里云存储 API CURL demo:
上传文件:
curl -i -X 'PUT' -T '1.jpg' 'http://com-163-sinkcup.oss.aliyuncs.com/1.jpg' -H 'Authorization: OSS asdf:qwer' -H 'Content-Type:image/jpeg'
删除文件:
curl -i -X 'DELETE' 'http://com-163-sinkcup.oss.aliyuncs.com/2.jpg'
七牛云存储 API CURL demo:
上传文件(可以看出七牛把bucket放在token认证中,技术上导致七牛无法实现“公共上传”):
curl -i -F 'file=@2.jpg' -F 'token=asdf' -F 'key=2.jpg' 'http://up.qiniu.com/'
删除文件:
curl -i -X 'POST' -H 'Authorization: QBox asdf' 'http://rs.qbox.me/delete/com-163-sinkcup:1.jpg'
可以看出:阿里云存储在技术上比较严谨,使用标准REST。七牛有的地方不再使用token,使用了HTTP header Authorization,可能正在改进。
图片功能对比如下:
阿里云存储
七牛云存储
自动生成任意分辨率
无
支持
自动生成任意格式
无
支持
webp
无
支持,可节约app大量流量
七牛的图片demo:
原图 103KB:http://com-163-sinkcup.qiniudn.com/6ffe255fab20747c8872638870268703
自动生成jpg 79KB:http://com-163-sinkcup.qiniudn.com/6ffe255fab20747c8872638870268703?imageMogr/v2/auto-orient/thumbnail/1366x768/quality/80/format/jpg
自动生成webp 23KB:http://com-163-sinkcup.qiniudn.com/6ffe255fab20747c8872638870268703?imageMogr/v2/auto-orient/thumbnail/1366x768/quality/80/format/webp
由于七牛提供的图片功能极其强大,支持webp对移动互联网省流量特别重要(Android、iOS app省70%流量),而且七牛使用go语言,还写了本书(《Go语言编程》豆瓣),说明技术上实力很强,以后也许会支持REST的,所以最后决定使用 七牛云存储。
阿里云和七牛的PHP SDK都一样不规范,没法用,只能重写。我重写好了,在这里:
七牛云存储PHP PEAR包下载:http://www.cnblogs.com/sink_cup/p/PHP_PEAR_Services_Qiniu.html
阿里云存储PHP PEAR包下载:http://www.cnblogs.com/sink_cup/p/PHP_PEAR_Services_Aliyun_OSS.html
阿里云存储1%不符合标准的地方:
自定义HTTP header使用了小写,不符合HTTP常识。比如阿里云使用x-oss-acl是错误的,应该使用X-Oss-Acl。
如何让文件上传到七牛云上面
我想开发一款安卓便签app给自己使用,想实现本地存储后可以同步到云存储上,结果发现七牛云存储挺好,不知道哪位大神可以写一下demo给我测试一下
使用python3.7+Vue.js2.0+Django2.0.4异步前端通过api上传文件到七牛云云端存储
之前一篇文章是通过普通js+tornado来上传七牛云:使用Tornado配合七牛云存储api来异步切分上传文件,本次使用vue+django来进行异步上传,因为毕竟vue.js才是目前的前端的主流。首先注册七牛云:qiniu.com,进入你的七牛云账号,打开秘钥页,记录下你的ak和sk随后新建一个云存储空间,这里空间名字一定要记录一下:此时我们用django写一个获取uptoken的接口,使用drf框架来写,注意别忘了安装七牛云扩展 pip install qiniu#七牛云token
from qiniu import Auth
class QiNiu(APIView):
def get(self,request):
q = Auth('E2IZM3koC1GR1DUqJHactmixzdyZZhx0edBKqDsk','GDnMkvRoE_kFhCSuvdqQj0VcNsRDOHzYJJ_bVd0_')
token = q.upload_token('redinnovation')
print(token)
res = {}
res['uptoken'] = token
return Response(res)之后启动django服务:python3 manage.py runserver访问django服务,确保每一次都会生成新的token,访问http://localhost:8000/uptoken/接口已经调试好,回到vue.js页面,添加一个上传控件{{ imgLoadPercent }}
<input @change="uploadInputchange" id="uploadFileInput" type="file" >这里的imgLoadPercent是上传进度的展示data () {
return {
uptoken:'',
imgLoadPercent:'',
}
}然后在methods里添加几个方法:get_token(){
this.axios.get('http://localhost:8000/uptoken/').then((result) =>{
console.log(result);
this.uptoken = result.data.uptoken;
});
},
//触发input change事件
uploadInputchange(){
let file = document.getElementById("uploadFileInput").files[0]; //选择的图片文件
this.get_token();
this.uploadImgToQiniu(file);
},
//上传图片到七牛
uploadImgToQiniu(file){
console.log(this.uptoken);
const axiosInstance = this.axios.create({withCredentials: false}); //withCredentials 禁止携带cookie,带cookie在七牛上有可能出现跨域问题
let data = new FormData();
data.append('token',this.uptoken); //七牛需要的token
data.append('file', file);
axiosInstance({
method: 'POST',
url: 'http://up-z1.qiniu.com/', //上传地址,华北的空间是up-z1.qiniu.com
data: data,
timeout:30000, //超时时间,因为图片上传有可能需要很久
onUploadProgress: (e)=> {
//imgLoadPercent 是上传进度,可以用来添加进度条
var complete = (e.loaded / e.total);
if (complete < 1) {
this.imgLoadPercent = (complete *100).toFixed(2)+ '%';
}
},
}).then(data =>{
console.log(data);
this.imgLoadPercent = '100%';
}).catch(function(err) {
//上传失败
});
}逻辑就是每一次上传之前,请求一次后台django的接口获取token,需要注意一点,在实际操作中,onUploadProgress这个方法并不能完全的真实展示上传进度,受限于网络或者别的因素导致它会有一定的提前量或者延迟,所以我们在这个方法内做了一个类似安慰剂按钮的效果,就是人为限制它不会变为100%,只有当七牛云返回结果的时候再赋值为100%。最后,如果上传成功后,七牛云接口会返回文件的key通过url即可访问。
个人博客(9、使用七牛云作为文件存储工具)
一、前言简略版博客后端只剩下文件模块没有完成了,本项目使用七牛云作为文件存储工具,减轻服务器压力。二、对接七牛云七牛云官方文档地址七牛云官方文档(java)七牛云令牌key和要保存图片的空间名称pom引入七牛云依赖<!-- 七牛云 -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.7.0</version>
</dependency>
复制代码七牛云demo()简单地写了一下,因为现在七牛云文件存储要有域名,我还没有申请,所以只是简单的写了一下,新申请的七牛云账号有三十天的临时域名可以测试使用,可是我的让我给浪费了。。。@PostMapping
@ApiOperation("新增")
public ResultVo insert(File fileDto, MultipartFile file) throws IOException {
// 文件名
String originalFilename = file.getOriginalFilename();
// 文件流
InputStream inputStream = file.getInputStream();
String upload = qiNiuUtils.upload(file);
fileDto.setUrl(upload);
fileService.save(fileDto);
return new ResultVo();
}
复制代码package com.ningxuan.blog.util;
import com.google.gson.Gson;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
/**
* 七牛云文件处理
*
* @Author ningxuan
* @Date 2022/8/10 23:32
*/
@Component
public class QiNiuUtils {
private String accessKey;
private String secretKey;
private String bucket;
@Value("#{qiniu.accessKey}")
public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}
@Value("#{qiniu.scret}")
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
@Value("#{qiniu.bucket}")
public void setBucket(String bucket) {
this.bucket = bucket;
}
public String upload(MultipartFile file) {
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Region.region0());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//默认不指定key的情况下,以文件内容的hash值作为文件名
//TODO 待完善,随机字符串拼接文件名,避免重复
String key = file.getOriginalFilename();
try {
byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(uploadBytes);
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
Response response = uploadManager.put(file.getInputStream(), key, upToken, null, null);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
} catch (Exception ex) {
//ignore
}
return key;
}
}
复制代码三、总结简单的对接了一下七牛云的文件上传功能,对于图片和视频七牛云还有其他的接口可以把玩把玩,例如给图片添加水印什么的接下来就要开搞前端的内容了,更的会细一点,毕竟虽然不是从零开始,但是也差不太多了
使用七牛云存储自动备份服务器数据
为了网站的安全性,定期备份网站数据才是最好的措施。某些IDC也提供了自动备份的功能,但多数都是收费服务。分享一下使用七牛云存储的QRSBox来自动将VPS的数据备份到七牛。
这个工具的好处就是初始化之后可以自动检测备份目录,并将文件上传到七牛,更重要的是支持windows和linux平台,这里主要是介绍linux系统下的备份方法,因为小z的VPS安装的是AMH面板,所以就用AMH来做介绍了。不过原理都是互通的,大家可以参照。
一、使用SSH工具远程连接服务器,然后使用”mkdir qiniu”创建一个名称为qiniu的文件夹,然后输入”cd qiniu”进入该文件夹
二、下载Qrsbox工具,如果你的Linux是64位则输入”wget http://devtools.qiniu.io/qiniu-devtools-linux_amd64-current.tar.gz”,32位的用户请输入”wget http://devtools.qiniu.io/qiniu-devtools-linux_386-current.tar.gz”进行下载。
三、使用tar命令解压Qrsbox”tar -zxvf qiniu-devtools-linux_amd64-v2.7.20140630.tar.gz”
四、注册七牛云存储,并新建一个bucket(空间),将属性设置为私有(为了数据的安全起见),小z已经创建了一个叫做”zbackup”的空间
五、然后,在解压后的文件夹中执行以下命令,进行初始化:
1 ./qrsboxcli init []
其中,
和
是七牛云存储的密钥文件,
是本地的同步目录,该目录下的文件会随时同步上传值七牛云存储。 是保存同步文件的资源空间名。
是文件前缀,可选。如果设置了该参数,那么上传的文件名前都会加上前缀。这个前缀主要用于在空间中区分不同上传来源的文件。
因为AMH的备份目录在/home/backup目录,所以填写/home/backup,获取密钥的方法是>>点击右上角>>账号设置>>点击左侧密钥可查看:
六、在AMH的后台创建一个任务计划,在运行命令处输入备份命令:amh backup,时间可以自行设定。
七、最后,用户可以使用以下命令开始文件同步:./qrsboxcli sync &
八、AMH是自动备份到/home/backup目录,然后七牛的QrsBox工具会自动同步到bucket,备份成功后我们可以在七牛的后台进行查看。
PS:更多使用说明请查看七牛QrsBox官方文档,原文阅读请访问:http://www.zouxiuping.com/archives/3763
对象存储云cos + tinify + python实现压缩图片之后上传并返回外链。
对象存储云cos + tinify? + python实现压缩图片之后上传并返回外链。
对象存储云、tinify
这里仅对比了Qcloud和七牛云。
Qcloud提供50G免费空间、10G外链。
qiniu认证用户有10G空间,5G外链。
其他push,get请求在正常使用过程中貌似达不到上限,这里就不对比。tinify是个免费的png压缩网站,它的api提供每月500次免费压缩次数,所以超过这个数量的大佬请忽视它。使用之前需要去官网获取自己的API KEY。七牛云的id和key也需要从官网获取。
需要实现的功能
先实现tinify的压缩图片。(目前已经实现,只是需要联网,可能有更好的本地化方法。)
压缩的图片之后直接上传到腾讯云/七牛云。并给我返回一个外链供我使用。
具体手段
本菜鸟手握Python3.6对着腾讯cosSDK忙活了一天,没有收获。倒是在晚上放弃之前装上python2.7之后一次成功了…但是我的anaconda2一直print报错,网上一搜都是这个问题。腾讯仅有一个qcloudapi-sdk-python支持Python3.6,且我不太能看懂:仅提供了api接口地址,和一个名为base.py的有些内容的函数。所以我选择七牛云,等腾讯大佬把Python3的SDK再完善一下再考虑。 关于腾讯云还发现了两个针对cos开发的SDK,仅支持pyhton 2.6 2.7。对于我这种刚入门的小白来说,七牛云的Python SDK 真是太友好了!关键是它支持Python3.6!而七牛云SDK里还有个BucketManager,功能强大!业界良心。
部分细节
压缩之后替代原文件,上传之后删除文件并返回一串图片外链。
改用七牛云之后,不返回图片外链,直接将本地文件名命名为外链地址。发现不行:图片名称不能出现斜线。
还是生成一个txt文件吧。
能不能访问到剪切板呢?(需要学习)
代码
Python库要求:pip install qiniu 、pip install tinify代码放在:https://github.com/xueglc/MyPython
其他任务
学习Seaborn,配合pandas,numpy。学习带有class类Python程序的写法,理解其优点。