我回来啦~~~好看的头图也回来了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
最后
文章完全纯手撸,引用到的文章:
文章内容在获得我的允许前,禁止转载!
好伤感的背景视频,看着眼泪不争气地掉下了→_→
林俊杰的until the day,这歌超感人,可以配合鬼魅浮生这部电影一起看,爱情电影
用程序换女装可还行
我也想研究出来如何自动换女装
dfdf
还有这种操作
这就是最新操作233333|´・ω・)ノ
你已经没有这种操作了
OpenJDK 会有什么问题吗。。
我已经尝试在centos下使用openJDK安装JAVA7,可以使用∠( ᐛ 」∠)_