简介
本文介绍在云主机内配置ftp,将ftp的根目录设置为对象存储bucket中的子目录的配置方法;此配置可以直接实现通过ftp上传文件到对象存储的bucket中;
前提条件
环境配置如下:
centos
7.4 云主机
s3fs 版本
1.85
pure-ftp 版本
1.0.47
配置方法:
一、创建bucket,同时在云主机内安装s3fs
1、在oss控制台创建一个bucket,本文bucket名称为jdftp;
2、安装s3fs,参考 https://docs.jdcloud.com/cn/object-storage-service/s3fs 进行安装,本文将bucket挂载到云主机上的目录为jdftp;
二、主机内安装ftp,本文安装的是pure-ftpd
1、用如下命令进行安装
yum install -y pure-ftpd
2、安装完成后先修改配置文件/etc/pure-ftpd/pure-ftpd.conf
把PureDB /etc/pure-ftpd/pureftpd.pdb前面的#删除;
3、启动pure-ftpd。
启动命令为systemctl start pure-ftpd。
启动完使用ps aux |grep pure-ftpd 命令看下是否有pure-ftp的进程;
4、创建账户,为了安全,pure-ftpd使用的账号并非linux的系统账号,而是虚拟账号。
创建虚拟账户jdftp,-u是将虚拟用户jdftp与系统用户pure-ftp关联在一起。
也就是说,使用jdftp账号登录ftp后,会以pure-ftp的身份来读取和下载文件,-d是指定jdftp账户的家目录。
这样可以使用户ftp_usera只能访问其家目录/jdftp/ftptest/。
5、调整/jdftp/ftptest的属主权限。
s3fs jdftp /jdftp -o allow_other -o uid=1000,umask=000,gid=1000 -o passwd_file=~/.passwd-s3fs -o url="https://s3.cn-north-1.jdcloud-oss.com" (其中allow_other是允许非root用户访问OSS ;uid=1000,umask=000,gid=1000 是设置目录的属主和权限)
6、创建用户信息数据库文件,使用命令pure-pw mkdb
之后使用 pure-pw list 查看下账户信息;
7、在/jdftp/ftptest 目录下创建一个测试文件 jdftptest.txt
8、通过ftp客户端连接测试,连接正常
并在可以直接对目录进行文件上传下载的操作;
在此感谢各位童鞋阅读,如果能够对大家有所帮助,欢迎点赞转发。
同时欢迎扫码关注京东云技术中台团队的公众号:云服务飞行团;更多精彩内容会持续放送!