如何利用云存储网关搭建FTP服务器访问OSS存储
背景
云存储文件网关是阿里云提供的存储网关产品,它可以满足用户通过NFS或Samba等协议访问OSS对象存储数据的需求。而通过简单的配置,我们也可以基于文件网关来配置一台FTP服务器,让用户通过FTP来访问OSS中的数据,实现用FTP客户端上传和下载同步OSS bucket中存储的数据。
本文将介绍在linux服务器上如何通过在云存储网关共享上搭建FTP服务器来实现对OSS内数据的分发与共享。
准备工作
添加NFS共享
(注:关于如何开通及创建云存储网关,大家可以参考 如何在Linux上挂载OSS Bucket 这篇文章)
首先,通过云存储文件网关管理控制台,为想要通过FTP访问的Bucket添加一个新的NFS共享(如果不需要共享整个bucket,请在创建共享时勾选子目录并填入要共享的子目录路径):
在配置共享时,如果有很多数据需要从OSS反向同步到文件网关的话,建议打开极速同步功能,这样可以保证我们在OSS中上传的文件及时同步到文件网关中。关于极速同步功能,可以参考 文件网关秒级同步OSS变更对象初体验
挂载共享目录
接下来,我们在linux服务器上创建/ftp目录,并将新创建的nfs共享挂载到/ftp目录下:
# 1. 创建ftp服务器使用的目录
[root@csg ~]# mkdir -p /var/ftp/oss-bucket
# 2. 使用showmount 命令查看新创建的网关共享
[root@csg ~]# showmount -e <网关IP地址>
# 3. 挂载共享目录到/var/ftp/oss-bucket目录下
[root@csg ~]# mount -t nfs <网关IP地址>:<共享路径> /var/ftp/oss-bucket
# 4. 查看目录挂载状态
[root@csg ~]# df -h /var/ftp/oss-bucket
搭建ftp服务器
1. 安装ftp服务
我们以centos 为例,安装ftp服务vsftpd:
[root@csg ~]# yum -y install vsftpd
2. 添加ftp用户
[root@csg ~]# useradd ftpuser1
[root@csg ~]# passwd ftpuser1
3. 配置vsftpd
[root@csg ~]# vi /etc/vsftpd/vsftpd.conf
## 常规配置
# line 12: 关闭匿名用户登陆
anonymous_enable=NO
# line 82,83: 允许ascii模式访问
ascii_upload_enable=YES
ascii_download_enable=YES
# line 100, 101: 使能chroot
chroot_local_user=YES
chroot_list_enable=YES
# line 103: 指定chroot用户列表配置文件路径
chroot_list_file=/etc/vsftpd/chroot_list
# line 109: 使能ls recurse
ls_recurse_enable=YES
# line 114: 如果使用ECS IPV4地址,修改下面一行并按需关闭IPV6
listen=YES
# line 123:
listen_ipv6=NO
# 添加下面几行配置到配置文件中
# 修改使用的chroot目录,我们配置为挂载了文件网关NFS共享的路径 (如果不指定的话,会默认使用ftp用户的home目录而不是NFS挂载目录)
local_root=/var/ftp/oss-bucket
# 使用本地时间
use_localtime=YES
# 关闭seccomp filter
seccomp_sandbox=NO
# 指定客户端passive模式访问端口,可自由指定
pasv_min_port=12001
pasv_max_port=12005
# 添加chroot允许用户
[root@csg ~]# vi /etc/vsftpd/chroot_list
# 添加允许chroot的ftp用户
ftpuser1
启动vsftpd服务
[root@csg ~]# systemctl start vsftpd
[root@csg ~]# systemctl enable vsftpd
如果开启了防火墙,需要添加规则允许ftp端口的访问:
[root@csg ~]# firewall-cmd --add-service=ftp --permanent
success
[root@csg ~]# firewall-cmd --reload
success
如果开启了selinux,需要允许ftp访问
[root@csg ~]# setsebool -P ftpd_full_access on
访问ftp/sftp服务器
配置完成后,我们就可以使用ftp客户端来访问部署好的ftp服务器了,我们以fileZilla客户端为例,使用ftpuser1这个用户登陆ftp服务器,并尝试上传一个f文件到ftp服务器:
图: 登陆并上传文件到ftp server
上传成功后,登陆到OSS控制台,到云存储网关配置共享的bucket对应的目录下查看,可以查看到刚刚上传的文件,实现了通过FTP客户端向OSS上传的功能:
图:在OSS控制台访问ftp client新上传的文件
同样,在文件网关打开极速同步或反向同步功能后,文件网关也可以反向同步OSS上的数据更新,让FTP的客户端获取到OSS上新上传的文件列表,下载OSS中新上传的文件。
总结
通过基于云存储网关的NFS共享搭建FTP服务器,可以让用户使用ftp访问OSS中的数据,实现用FTP客户端上传数据到OSS和下载OSS中的数据的功能,让文件共享与分发更加的方便。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
开发者必看!KISS、DRY和需要遵守的编码原则
开始编程时遇到的第一个挑战是编写功能代码。但成为开发者后,编程技能也会随之增长。你的代码应该从普通的功能代码发展为简洁、高效、可理解且可维护的代码。 这才是开发人员面临的真正挑战。 本文将会介绍助你实现超级代码状态的5个原则。 1. 代码一目了然 程序的大小增加时,代码的复杂性也会随之增加。代码也会变得很难调试,因为调试复杂的代码是一项可怕的任务。没有人喜欢维护复杂的代码。这个原则指出应该始终保持代码的简单性。如果代码复杂,请努力将其分解成更小、更易维护的代码。 编写简洁的代码比编写复杂的BS代码更困难。作为开发人员,随着技能不断成熟,你的代码就应该越干净、越有意义。 2. 你并不需要它 有时应当未雨绸缪,但不是在编程方面。人们倾向于编写将来可能需要但现在还不需要的代码。这些代码不必要地增加了程序的大小,因为编写的代码从来没有实现过。更重要的是,大多数程序员将来都不会使用这些代码。程序员的这种习惯会使代码不必要地膨胀。 这一原则规定在必要时才实施。这是每个开发人员都应该遵循的一条建议。 3. 不要重复 这一原则对于编写简单且易于修改的代码至关重要。重复的代码是程序员常犯的错误。这个原则...
-
下一篇
02月05日云栖号头条:钉钉联合阿里健康推出防疫精灵,助力企业疫情防控
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 今日最新云头条快讯: 企业开工在即,防疫措施如何落实到人,是众多企业都面临的难题。对此,阿里巴巴旗下钉钉、阿里云、阿里健康联合紧急开发上线“防疫精灵”机器人,帮助企业进行疫情消息推送与防控;北京市新型冠状病毒感染的肺炎疫情防控工作新闻发布会上,北京市人力社保局局长徐熙说,企业为满足生产经营的需要,可以实施灵活用工政策,允许企业在保障职工合法权益的基础上,综合调剂使用年度内的休息日。 一起来看最新的资讯: 钉钉联合阿里健康推出防疫精灵,助力企业疫情防控 企业开工在即,防疫措施如何落实到人,是众多企业都面临的难题。对此,阿里巴巴旗下钉钉、阿里云、阿里健康联合紧急开发上线“防疫精灵”机器人,帮助企业进行疫情消息推送与防控。钉钉“防疫精灵”可以定时推送最新疫情播报到钉钉群,用户在群中@防疫精灵,还可了解新冠肺炎症状、最新疫情、居家防护、公共场所、外出交通、无接触配送、密切接触、个人防护、医院门诊等信息。钉钉“防疫精灵”整合了阿里健康的在线问医...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,CentOS7官方镜像安装Oracle11G
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS关闭SELinux安全模块