阿里云服务器-跨地域-文件快速传输方案
场景描述:
阿里云服务器之间大文件的传输,有集中情况,
1 同一地域下(如,都是在华北三区):
同是【经典网络】,同是【专有网络】---这种简单,直接内网IP传输文件就行;
一台是【经典网络】,一台是【专有网络】--这种情况,通过设置ClassicLink安全组规则,用ClassicLink来实现。
参考:经典网络和专有网络互通,https://help.aliyun.com/document_detail/108468.html
2. 不同地域下,两台服务器之间,不能使用内网IP传输,外网传输的话,取决于服务的网络带宽,一般带宽5M的话,传输速度在700Kb/秒,稍微大点的文件,估计要拷贝到睡着;接下来也就是今天要说的重点,可以通过对象存储建立中转来处理:https://developer.aliyun.com/article/868864?spm=a2c6h.12873639.article-detail.43.11b84b5bSJ1clm
以linux操作系统为例:
一:阿里云oss控制台,对象存储---Bucket列表,创建新的Bucket名称:test-aokesi 用于存放数据;
创建完成后进入该Bucket,概览界面可以看到,待会我们要用到的传输地址,复制下来。
二: 数据文件所在服务器操作:
注意:重要!重要!重要!刚创建的Bucket所在的区域,和数据所在的服务器所处地域,必须在同一个区域,例:都在华北3区,否则网络不通,已验证!!!
ossutil下载和安装 [root@iZ2zeab8t820b6yl5wbxk6Z ~]# wget http://gosspublic.alicdn.com/ossutil/1.6.9/ossutil64 [root@iZ2zeab8t820b6yl5wbxk6Z ~]# chmod 755 ossutil64 使用命令行交互式配置生成配置文件: [root@iZ2zeab8t820b6yl5wbxk6Z ~]# ./ossutil64 config The command creates a configuration file and stores credentials. Please enter the config file name,the file name can include path(default /root/.ossutilconfig, carriage return will use the default file. If you specified this option to other file, you should specify --config-file option to the file when you use other commands): ----回车 No config file entered, will use the default config file /root/.ossutilconfig For the following settings, carriage return means skip the configuration. Please try "help config" to see the meaning of the settings Please enter language(CH/EN, default is:EN, the configuration will go into effect after the command successfully executed):EN ---输入EN Please enter endpoint: http://oss-cn-zhangjiakou-internal.aliyuncs.com --输入自己的对象存储地址 Please enter accessKeyID:********* ---输入accessKeyID Please enter accessKeySecret:*********** ---输入accessKeySecret Please enter stsToken: ---可以直接回车,不用输入 [root@iZ2zeab8t820b6yl5wbxk6Z ~]# cat /root/.ossutilconfig [Credentials] language=EN endpoint= http://oss-cn-zhangjiakou-internal.aliyuncs.com accessKeyID=*********** accessKeySecret=*********
注意:
endpoint: http://oss-cn-zhangjiakou-internal.aliyuncs.com ,必须要有http://,要不会被当作外网,产生流量费用;accessKeyID和accessKeySecret的获取方式:https://help.aliyun.com/document_detail/53045.html
三:文件上传:
上传命令:
./ossutil64 cp /home/test/aaa.zip oss://test-aokesi/aaa.zip
说明:上边的命令是把本地/home/test/aaa.zip的文件,复制传输到远程oss存储地址Bucket下,名字叫aaa.zip ---路径根据自己实际修改调整。
四.下载
登录目标服务器,创建接收目录,同样要在该服务器上安装ossutil64工具,并做步骤一的配置;
开始执行文件下载命令:
./ossutil64 cp oss://test-aokesi/aaa.zip ./aaa.zip
说明:上边的命令是从远程oss存储地址,复制aaa.zip,到本地当前目录下名字叫aaa.zip ---路径根据自己实际修改调整。
OK,感受下速度,一般文件上传速度在50M/秒左右,下载在70M/秒左右!!!
另外注意,文件传输完成后,如果文件没有其他用处,记得在OSS控制台,把Bucket下你刚传的文件“aaa.zip”删除,否则可能产生额外存放费用。
---补充:
如果,往对象存储地址上传可以,但是在目标服务器上下载有问题,首先检查下Bucket是否开通了“公共读”或者“公共读写”权限;
然后再次尝试下载!!!
如果还是不能正常下载(即:输入命令后没反应),原因可能是,数据上传的对象Bucket所在区域 和 目标服务器所在区域,不在同一个区域,例如都是“华北3区-张家口”;
可以试下另一个方法,利用阿里云oss的扩展功能:对象存储--》冗余容错--》跨区域复制--〉同步到到目标服务器所在区域的Bucket下的对象存储地址。
---不过这样会产生一定的流量费用。