展开

文章目录

修改历史

使用COS备份云服务器数据

2021-03-19 13:30:00 应用部署 942

简介

当我们购买了云服务商的应用服务器之后,在上面跑了一下APP,数据的备份是十分重要的。但是有时候由于服务器的带宽比较小,通过SCP或者FTP去下载备份文件到本地速度非常的慢,这篇文章主要是介绍通过COS来快速备份云服务器中的数据。

1. 什么是对象存储

COS(Cloud Object Storage,COS)的意思就是对象存储,提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。在COS中有两个概念一个是bucket还有一个是object。在这里bucket就相当于我们电脑上的硬盘,用来存储object的,从而object就相当于是我们电脑硬盘中每一个文件。

2. 创建BUCKET

首先登录腾讯云的控制台页面,在所有产品中输入COS,就可以找到对象存储的页面,按照页面上的提示一步一步的操作即可,最后会进入到如下页面

创建bucket

这里要注意的是,最好是创建一个跟自己云服务在同一个区域的对象存储,因为在同一个区域的话,就不会耗费对象上传所需要的的费用了。当然如果你是土豪,那么可以忽略这一点。

3. 查看网络是否连通

登录到自己的云服务器,通过telnet命令来判断云服务器晕COS之间的网络是否连通,命令如下

telnet examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com 80
Trying 169.254.0.47....
Connected to 169.254.0.47.
Escape character is '^]'.

连接可以到自己的COS对应的bucket概览中查看,如果出现上述结果,则说明云服务器与COS是连通的。.

4.上传文件到bucket中

上传文件到bucket中的方式有很多种,这里只介绍通过Python SDK的方式上传文件到bucket。

首先需要先通过pip安装第三方库,命令如下

pip install -U cos-python-sdk-v5

然后需要获取两个关键认证参数,SecretId与SecretKey,访问该页面既可以获取到

然后新建一个脚本文件输入如下代码

# -*- coding=utf-8
# appid 已在配置中移除,请在参数 Bucket 中带上 appid。Bucket 由 BucketName-APPID 组成
# 1. 设置用户配置, 包括 secretId,secretKey 以及 Region
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
import logging
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
secret_id = 'COS_SECRETID'      # 替换为用户的 secretId
secret_key = 'COS_SECRETKEY'      # 替换为用户的 secretKey
region = 'COS_REGION'     # 替换为用户的 Region
token = None                # 使用临时密钥需要传入 Token,默认为空,可不填
scheme = 'https'            # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
# 2. 获取客户端对象
client = CosS3Client(config)
with open('picture.jpg', 'rb') as fp:
   response = client.put_object(
       Bucket='examplebucket-1250000000',
       Body=fp,
       Key='picture.jpg',
       StorageClass='STANDARD',
       EnableMD5=False
   )
print(response['ETag'])

上述代码中的参数根据自己实际的bucket参数进行配置,运行上面的脚本就可以将数据上传到bucket中了。

如果我们希望在bucket中对文件进行分类,可以在腾讯云控制台中新建文件夹,如下图

如果我们希望将picture.jog上传到博客图片文件中,修改上面的代码为如下所示就可以了

with open('picture.jpg', 'rb') as fp:
   response = client.put_object(
       Bucket='examplebucket-1250000000',
       Body=fp,
       Key='博客图片/picture.jpg',
       StorageClass='STANDARD',
       EnableMD5=False
   )

之后在控制台就可以手动下载你想下载的文件啦,速度非常快,但是还是需要注意费用哦,如果文件体量不大,一年也花不了太多钱。

4条评论


Macv 博主

西湖美景三月天,春雨如酒柳如烟。


Macv 博主

等有空写一个自动备份的脚本