如何将S3存储桶中的pkl文件上传至EFS?挂载问题排查
问题分析与解决步骤
一、先解决EFS挂载失败的核心问题
你遇到的unknown filesystem type 'efs'错误,本质是Cloud9环境未安装EFS挂载助手(amazon-efs-utils)——这是使用mount -t efs命令的必要依赖。
安装EFS挂载助手步骤:
- 更新系统包管理器:
sudo yum update -y
- 安装挂载助手工具:
sudo yum install -y amazon-efs-utils
- 安装完成后重新执行挂载命令:
sudo mount -t efs -o tls fs-yyyyyyyyyyyyy:/ efs
二、验证EFS是否正确挂载的方法
挂载完成后,可通过以下方式确认状态:
- 查看系统挂载列表,过滤EFS相关条目:
mount | grep efs
成功挂载会显示类似fs-yyyyyyyyyyyyy:/ on /home/ec2-user/environment/efs type nfs4 (...)的输出。
- 查看挂载目录的磁盘使用信息:
df -h | grep efs
成功挂载会展示EFS的存储容量、已用空间及挂载路径。
- 写入测试文件验证权限与连通性:
sudo touch /home/ec2-user/environment/efs/test-mount.txt ls /home/ec2-user/environment/efs/
若能看到test-mount.txt文件,说明挂载正常且具备写入权限。
三、解决S3 cp的权限问题
你的权限错误并非S3桶策略导致(桶策略已开放必要权限),而是本地目录权限冲突:
从ll输出可见,你创建的efs目录属于root用户,而你用ec2-user执行aws s3 cp命令时无写入权限。
两种解决方式:
- 修改目录权限,让
ec2-user拥有读写权限:
sudo chown -R ec2-user:ec2-user /home/ec2-user/environment/efs
- 切换至
root用户执行复制命令:
sudo aws s3 cp s3://mybucket-models/linear_model.zip /home/ec2-user/environment/efs/
四、S3与EFS基础学习要点
S3核心特性与操作:
- 对象存储服务,适合存储海量非结构化数据(文件、备份、媒体资源等),按存储量和请求次数计费。
- 常用操作:
- 上传文件:
aws s3 cp local-file.txt s3://my-bucket/path/ - 下载文件:
aws s3 cp s3://my-bucket/path/remote-file.txt ./ - 列出桶内内容:
aws s3 ls s3://my-bucket/
- 上传文件:
- 进阶功能:支持版本控制、生命周期规则(自动归档/删除)、跨区域复制等。
EFS核心特性与操作:
- 弹性文件存储,与Linux文件系统用法完全兼容,适合多EC2实例共享存储的场景,按实际存储量计费。
- 关键注意事项:需与挂载实例在同一VPC,且安全组需开放NFS协议端口(2049)的流量。
- 进阶功能:支持加密、访问点(细粒度权限控制)、性能模式调整等。
内容的提问来源于stack exchange,提问作者BodeTech
相关产品推荐
相关产品推荐

