将S3存储桶挂载到lightsail或EC2 Linux实例

S3fs介绍

S3fs是基于FUSE的文件系统,允许Linux和Mac Os X 挂载S3的存储桶在本地文件系统,S3fs能够保持对象原来的格式。关于S3fs的详细介绍,请参见:https://github.com/s3fs-fuse/s3fs-fuse

利用S3fs挂载S3存储桶到lightsail或EC2 Linux实例

将S3存储桶挂载到lightsail或EC2 Linux实例

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

安装和配置S3fs

安装s3fs

    linux系统提供了预构建的包:

    Amazon Linux via EPEL:

    sudo amazon-linux-extras install epel
    sudo yum install s3fs-fuse

    Arch Linux:

    sudo pacman -S s3fs-fuse

    Debian 9 and Ubuntu 16.04 or newer:

    sudo apt install s3fs

    Fedora 27 or newer:

    sudo dnf install s3fs-fuse

    Gentoo:

    sudo emerge net-fs/s3fs

    RHEL and CentOS 7 or newer via EPEL:

    sudo yum install epel-release
    sudo yum install s3fs-fuse

    SUSE 12 and openSUSE 42.1 or newer:

    sudo zypper install s3fs

    macOS 10.12 and newer via Homebrew:

    brew install --cask macfuse
    brew install gromgit/fuse/s3fs-mac

    FreeBSD:

    pkg install fusefs-s3fs

    检查s3fs是否安装成功

    [root@ip-172-31-23-148 s3fs-fuse]$ s3fs
    s3fs: missing BUCKET argument.
    Usage: s3fs BUCKET:[PATH] MOUNTPOINT [OPTION]...
    [root@ip-172-31-23-148 ~]$ which s3fs
    
    /usr/bin/s3fs

    创建IAM用户访问密钥文件

    • IAM用户访问密钥内容可以写入当前用户默认密钥文件比如“/home/ubuntu/.passwd-s3fs”或者用户自己创建的文件。
    • 命令格式:echo [IAM用户访问密钥ID]:[ IAM用户访问密钥] >[密钥文件名]
    • 命令举例:下面的例子将在当前用户默认路径创建密钥文件
    echo AKIAIOEO4E2VOHLxxxxx:2LXBboddEpRLmWl48i3+b4ziwPL3bJ4vxxxxxxxx > /home/ubuntu/.passwd-s3fs

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

    • 命令格式:chmod 600  [密钥文件名]
    • 命令举例:下面的例子将设置密钥文件只能被当前用户访问
    chmod 600 /home/ubuntu/.passwd-s3fs

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

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

    命令举例:下面的例子将名为“ossXXXX”的日本区域S3存储桶挂载到指定的本地目录“/home/ec2-user/s3mnt”。

    s3fs ossXXXX /home/ubuntu/s3mnt -o passwd_file=/home/ubuntu/.passwd-s3fs -o endpoint=ab-northeast-1

    s3fs ossXXXX /home/ubuntu/s3mnt -o passwd_file=/home/ubuntu/.passwd-s3fs -o url=https://s3.ap-northeast-1.amazonaws.com -o endpoint=ap-northeast-1

    挂载AWS中国北京区域S3存储桶

    s3fs ossXXXX /home/ubuntu/s3mnt -o passwd_file=/home/ubuntu/.passwd-s3fs -o url=http://s3.cn-north-1.amazonaws.com.cn -o endpoint=cn-north-1

    自动挂载海外区域S3存储桶

    编辑/etc/fstab文件,添加后面的自动挂载命令。

    vi /etc/fstab
    • 命令格式:s3fs#[S3存储桶名] [本地目录名] fuse _netdev,allow_other,endpoint=[区域名] 0 0
    • 命令举例:添加下面的语句到/etc/fstab后,Linux系统启动后将自动把名为“ossXXXX”的新加坡区域S3存储桶挂载到本地目录“/home/ubuntu/s3mnt”,并允许其它操作系统用户(非root用户)访问。

    /usr/bin/s3fs#ossXXXX /home/ubuntu/s3mnt fuse _netdev,allow_other,endpoint=ap-northeast-1 0 0

    /usr/bin/s3fs#oss5987 /home/ubuntu/s3mnt fuse _netdev,use_path_request_style,url=http://s3.ap-northeast-1.amazonaws.com,passwd_file=/home/ubuntu/.passwd-s3fs 0 0

    自动挂载中国北京区域S3存储桶

    编辑/etc/fstab文件,添加后面的自动挂载命令。

    vi /etc/fstab
    • 命令格式:s3fs#[S3存储桶名] [本地目录名] fuse allow_other,url=http://s3.cn-north-1.amazonaws.com.cn,endpoint=cn-north-1 0  0
    • 命令举例:添加下面的语句到/etc/fstab后,Linux系统启动将自动把名为“s3fs-mount-bucket”的北京区域S3存储桶挂载到本地目录“/home/ec2-user/s3mnt”下,并允许其它操作系统用户(非root用户)访问。
    /usr/bin/s3fs#ossXXXX /home/ubuntu/s3mnt fuse allow_other,url=http://s3.cn-north-1.amazonaws.com.cn,endpoint=cn-north-1 0  0
    实操指南

    [客户故事]深夜网站502宕机?看Hostol专家支持如何15分钟解决

    2025-9-2 9:41:47

    实操指南知识库

    混合云架构:平衡灵活性与控制的完美方案

    2024-11-19 13:52:15

    0 条回复 A文章作者 M管理员
      暂无讨论,说说你的看法吧