利用COS高速下载CVM内文件(腾讯云) – 拯救你的1M小鸡鸡

我回来啦~~~好看的头图也回来了2333333

 

写在文章之前,您需要先了解,文中的内容我仅仅想到用于备份文件、高速下载CVM内的文件,但是还没想到如何应用于实际的文件分发中。

而且是在腾讯云的COS和CVM内实现的,但在理论上,其他提供商的对象存储和VPS服务应该能够做到相似的效果。

注意,而在CVM与COS传输文件,COS下载文件中可能会导致大量的流量费用,请先咨询运营商的相关服务费用。

1.什么是COS、CVM,实现的原理

COS是指腾讯云的对象存储服务,CVM则是腾讯云的虚拟服务器。

同地域的COS和CVM服务,通常能够使用高速的内网连接传输文件,再使用对象存储的高速下载,以使得能用较高的速度下载CVM内文件。

为何有本文,因为CVM一般带宽都比较贵,个人站长一般都会选择会用小带宽机器。我就在拉取CVM内的备份文件时,100k/s的速度实在是太慢了,才想到了这种方法并加以实现。

2.准备环境

在腾讯云的COS的产品文档中有操作COS的SDK,而我为了方便直接使用了官网上的 文件同步工具 。

这个文件同步工具是基于Java开发的,所以我们需要先在CVM上安装JAVA的JDK。

2.1安装JAVA

在此使用的是使用ppa/源方式安装JDK,基于Ubuntu!!

关于在centos下安装JAVA,我已经尝试使用openJDK安装Java7,能正常使用同步工具

首先,添加PPA

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

然后安装oracle-java-installer

JDK 7

sudo apt-get install oracle-java7-installer

JDK 8

sudo apt-get install oracle-java8-installer

安装器会提示你同意 oracle 的服务条款,选择确认即可

如果你因为防火墙或者其他原因,导致installer 下载速度很慢,可以中断操作.然后下载好相应jdk的tar.gz 包,放在:

/var/cache/oracle-jdk7-installer (jdk7)

/var/cache/oracle-jdk8-installer (jdk8)

下面,然后安装一次installer. installer 则会默认使用 你下载的tar.gz包

接着,设置系统默认jdk

JDk7

sudo update-java-alternatives -s java-7-oracle

JDK8

sudo update-java-alternatives -s java-8-oracle

如果即安装了jdk7,又安装了jdk8,要实现两者的切换,可以:

jdk8 切换到jdk7

sudo update-java-alternatives -s java-7-oracle

jdk7 切换到jdk8

sudo update-java-alternatives -s java-8-oracle

最后测试jdk 是是否安装成功:

java -version

javac -version

2.2获取COS文件同步工具

腾讯云官网提供的GitHub项目地址:文件同步工具

在服务器中用

wget https://github.com/tencentyun/cos_sync_tools/archive/master.zip

下载后,进行解压 unzip master.zip

然后进入解压出来的文件夹

2.3配置COS文件同步工具

使用 vi ./conf/config.json 编辑配置文件

示例配置文件:

{
    "appid"            : "xxxxxx",
    "secret_id"        : "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "secret_key"       : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "bucket"           : "xxxxxx",
    "timeout"          : "60",
    "thread_num"       : "50",
    "delete_sync"      : "1", 
    "daemon_mode"      : "0",
    "daemon_interval"  : "60", 
    "enable_https"     : "0",
    "region"           : "gz",

    "local_path"       : "/home/test/data",
    "cos_path"         : "/mysyncfolder"
}

各选项的描述

名称 描述 有效值
app_id 需要进行操作的 APPID,可从控制台获取 APPID 数字
secret_id APPID 对应的秘钥 ID,可从控制台获取 字符串
secret_key APPID 对应的秘钥 Key,可从控制台获取 字符串
bucket 指定要同步的 bucket 名称, 需要提前在控制台建立,参考 创建 Bucket 字符串
timeout 连接 COS 的超时时间,在网络状况不佳的情况下可以增大该值。
单位: 秒
数字
thread_num 并发的线程数,表示同时上传的文件,对于大量的小文件(如图片类) 可以增大改值(如 50),提高上传速度。对于大文件,建议设置较小值(如 5,取决于文件大小),否则有可能引起内存溢出 OOM。 数字
delete_sync 删除本地文件时同步删除 COS 文件。
1:本地删除时同步删除远程文件;0:忽略本地已删除文件
数字
daemon_mode 后台进程模式运行。
1:循环运行同步工具; 0:运行一次后退出。
数字
daemon_interval 后台进程模式下,检查本地文件变化的时间间隔。
单位:秒
数字
enable_https 启用 https 进行传输。
1:使用 https | 0:使用 http
数字
region bucket所在的区域。如华北天津(tj), 华东上海(sh), 华南广州(gz) 字符串
local_path 需要同步的本地绝对路径。Windows 路径需用双斜线 \\ 分割。
Linux 范例:/home/user/dir
Windows 范例:C:\\document\\dir
字符串
cos_path 同步到 COS 的目的路径,需以 / 为结尾以表示目录,根目录为 /。 字符串

你需要前往你的COS的管理页面获取你的COS的app_id、secret_id、secret_key、bucket名称这些信息。

按照您的信息填好后就准备好这个工具了

关于如何获取bucket的app_id:

3.传输文件

将你的文件移动到 设置文件中设置的 local_path 的目录下后

运行 sh start_cos_sync.sh 即可进行文件同步

同步完成。一般来说内网传输的速度都会很快的。

然后再前往 COS的文件管理 里下载就ok了,我为了达到全速使用 IDM 进行多线程下载

 

这样就可以实现CVM文件快速取回本地,而避免了CVM带宽小而拉取文件慢,占用服务器带宽的问题。

如果想使用对象存储为你的网站进行加速,您可以查看这篇文章 使用七牛云镜像缓存为WordPress加速!#这不是评测#

最后,如果你觉得文章不错的话可以打赏我去买女装哦

女装什么的最好了2333333333

 

最后

文章完全纯手撸,引用到的文章:

Ubuntu 安装 JDK 7 / JDK8 的两种方式

腾讯云帮助文档:本地同步工具

文章内容在获得我的允许前,禁止转载!

11 条评论

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  1. 1梦

    好伤感的背景视频,看着眼泪不争气地掉下了→_→

    1. 很懒的樱花

      林俊杰的until the day,这歌超感人,可以配合鬼魅浮生这部电影一起看,爱情电影

  2. SPtuan

    用程序换女装可还行

    1. 很懒的樱花

      我也想研究出来如何自动换女装

  3. 很懒的樱花

    dfdf

  4. 悠然

    还有这种操作

    1. 很懒的樱花

      这就是最新操作233333|´・ω・)ノ

      1. 无人小站

        你已经没有这种操作了

        1. 很懒的樱花

  5. tcdw

    OpenJDK 会有什么问题吗。。

    1. 很懒的樱花

      我已经尝试在centos下使用openJDK安装JAVA7,可以使用∠( ᐛ 」∠)_