热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用S3fs在AmazonEC2Linux实例上挂载S3存储桶

一、准备!!!1、使用拥有足够权限的IAM账号登录AWS控


一、准备!!!



1、使用拥有足够权限的IAM账号登录AWS控制台


2、创建S3存储桶,给存储桶命名如“my-bucket”(如果使用已有存储桶,本步骤可略过)


3、有该S3存储桶访问权限的 IAM 用户,并为该IAM用户创建访问密钥



  • 关于如何创建IAM用户,请参见:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_users_create.html#id_users_create_console

  • 关于如何为IAM用户创建访问密钥,请参见:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_credentials_access-keys.html

  • 关于如何为IAM用户设置权限策略,请参见:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies_create.html


4、创建并启动Amazon EC2 Linux实例



  • 具体过程请参见:http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/launching-instance.html



二、安装s3fs-fuce工具



1、安装epel源

[root@ip-172-31-23-148 ~]#amazon-linux-extras install epel

2、安装s3fs-fuce工具

[root@ip-172-31-23-148 ~]#yum install s3fs-fuse

3、检测是否安装s3fs

[root@ip-172-31-23-148 ~]#which s3fs
/usr/local/bin/s3fs


三、创建IAM用户访问密钥文件



1、创建IAM用户访问密钥文件



  • IAM用户访问密钥内容可以写入当前用户默认密钥文件比如“/home/ec2-user/.password”或者用户自己创建的文件(也可以不是隐藏文件)

  • 命令格式:echo [IAM用户访问密钥ID]:[ IAM用户访问密钥] >[密钥文件名]

  • 命令举例:下面的例子将在当前用户默认路径创建密钥文件:

    • echo AKIAIOEO4E2VOHLxxxxx:2LXBboddEpRLmWl48i3+b4ziwPL3bJ4vxxxxxxxx > /home/ec2-user/.password




2、设置密钥文件只能够被当前用户访问



  • 命令格式:chmod 600  [密钥文件名]

  • 命令举例:下面的例子将设置密钥文件只能被当前用户访问(也可以是root用户,但是一般用普通用户)

    • chmod 600 /home/ec2-user/.password




3、如果是在root用户下创建的password文件,那么该文件的所属是root用户,手动挂载就无法使用普通用户去挂载,所以需改变属主属组



  • 命令格式:chown ec2-user.ec2-user [秘钥文件名]

  • 命令举例:chown ec2-user.ec2-user /home/ec2-user/.password



四、手动挂载s3存储桶



1、挂载存储桶使用的命令是s3fs


2、s3fs的命令格式是:



  • s3fs [S3存储桶名] [本地目录名] [OPTION]

  • option是可选项,格式是 –o =,常用的options有:

    • passwd_file=       :指定挂载的密钥文件

    • url=       :设置访问s3的url http://s3.amazonaws.com

    • endpoint       :设置s3存储桶的endpoint us-east-1

    • allow_other     :设置allow_other允许所有用户访问挂载点目录,设置这个选项需要在 /etc/fuse.conf 文件添加user_allow_other选项




3、手手动挂载AWS中国宁夏区域S3存储桶



  • 命令格式:s3fs [S3存储桶名] [本地目录名] -o passwd_file=[密钥文件名] -o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1

    • 北京区域:-o url=http://s3.cn-north-1.amazonaws.com.cn -o endpoint=cn-north-1

    • 宁夏区域:-o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1



  • 命令举例:下面的例子将名为“my-bucket”的宁夏区域S3存储桶挂载到本地目录“/home/ec2-user/s3mnt”

    • s3fs my-bucket /home/ec2-user/s3mnt -o passwd_file=/home/ec2-user/.password -o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1




4、手动挂载AWS海外区域S3存储桶



  • 命令格式:s3fs [S3存储桶名] [本地目录名] -o passwd_file=[密钥文件名] -o endpoint=[区域名]

  • 命令举例:下面的例子将名为“my-bucket”的新加坡区域S3存储桶挂载到指定的本地目录“/home/ec2-user/s3mnt”

    • s3fs my-bucket /home/ec2-user/s3mnt -o passwd_file=/home/ec2-user/.password -o endpoint=ap-northeast-1




5、查看挂载结果

[root@ip-172-31-23-148 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 488M 56K 488M 1% /dev
tmpfs 498M 0 498M 0% /dev/shm
/dev/xvda1 7.8G 1.2G 6.6G 15% /
s3fs 256T 0 256T 0% /home/ec2-user/s3mnt

6、卸载挂载的s3存储桶

[root@ip-172-31-23-148 ~]# umount /home/ec2-user/s3mnt
[root@ip-172-31-23-148 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 488M 56K 488M 1% /dev
tmpfs 498M 0 498M 0% /dev/shm
/dev/xvda1 7.8G 1.2G 6.6G 15% /

7、如果想要设置开机自动挂载及其他详情,请参见:https://amazonaws-china.com/cn/blogs/china/s3fs-amazon-ec2-linux/  


 



推荐阅读
author-avatar
流年时光云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有