s3在aws服务中,是重要的一个服务对象。在上传文件或者下载文件的时候,都是比较方便的的。下面列举两种最常用的方法去操作。
上传文件的方法有:
1.命令行的方式上传:aws s3 cp abc.tar.gz s3://image-auto-scaleing --acl public-read
2.使用SDK:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/UsingAWSSDK.html (官网地址)
3.控制台的方式上传:(如下图)
需求
现在存在这样的一个需求:能不能把s3像网络存储一样的方式挂载到本地?这样的话,就可以直接往服务器的本地的一个路径去写文件了。然后就可以直接保存到s3了。而无需去使用sdk或者其他的命令行cli的方式。
答案是有的。可以使用s3fs去操作。这边会找一个ec2服务器,然后去安装对应的s3fs。
什么是s3fs
S3FS 是 Amazon Simple Storage Service(Amazon S3)的一种开源文件系统,它允许你将 Amazon S3 存储桶(buckets)挂载到操作系统的文件系统上,就像你挂载本地硬盘或网络共享一样。这个工具的主要作用是将 S3 存储桶中的对象(文件)以文件和目录的形式呈现在你的操作系统中,使你可以通过标准的文件操作(如读取、写入、复制、移动等)来访问和管理 Amazon S3 存储桶中的数据。
S3FS 的工作原理是通过 FUSE(Filesystem in Userspace)将 S3 存储桶映射为本地文件系统。这使得你可以使用标准的文件系统 API 来与 S3 中的数据进行交互,而无需直接调用 S3 API。
S3FS 的主要优点包括:
1. 透明性: 用户可以像操作本地文件系统一样操作 S3 存储桶中的对象,无需了解 S3 的复杂性。
2. 数据迁移: 可以轻松地将数据从本地文件系统迁移到 S3 存储桶,反之亦然。
3. 备份和恢复:可以使用标准备份工具来备份 S3 存储桶中的数据,并在需要时进行恢复。
4. 与现有工具的兼容性:S3FS 可以与大多数文件和数据处理工具集成,使其能够直接使用 S3 存储桶中的数据。
安装s3fs
GitHub地址:https://github.com/s3fs-fuse/s3fs-fuse (强烈建议安装之前查看对应的文档)
###安装命令行工具 sudo amazon-linux-extras install epel sudo yum update sudo yum install s3fs-fuse ###验证是否安装成功 [root@ip-192-168-3-206 ~]# s3fs --version Amazon Simple Storage Service File System V1.93 (commit:unknown) with OpenSSL Copyright (C) 2010 Randy Rizun <rrizun@gmail.com> License GPL2: GNU GPL version 2 <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. [root@ip-192-168-3-206 ~]# [root@ip-192-168-3-206 ~]# ###源码安装-不建议(可选) yum groupinstall "Development Tools" yum install automake autoconf gcc-c++ libcurl-devel libxml2-devel yum install fuse-devel yum -y install git git clone https://github.com/s3fs-fuse/s3fs-fuse.git cd s3fs-fuse sudo ./autogen.sh sudo ./configure sudo make sudo make install
s3挂载
国内s3挂载
在挂载之前,需要使用到一个AKSK。该AKSK必须要有对s3的读写权限
###需要配置一个AKSK
echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs
###创建挂载点
mkdir /data
###手动挂载命令
s3fs image-auto-scaleing /data -o passwd_file=/root/.passwd-s3fs -o url=http://s3.cn-north-1.amazonaws.com.cn -o endpoint=cn-north-1
###写入fstab命令(开机自启动挂载)
/usr/bin/s3fs#image-auto-scaleing /data fuse allow_other,url=http://s3.cn-north-1.amazonaws.com.cn,endpoint=cn-north-1 0 0
###检查fstab是否可以生效
umount /data ###先卸载
mount -a ###挂载,如果成功则代表OK。如果返回其他的,请检查写入的语法
###写入Fstab(开机自动挂载)
echo "/usr/bin/s3fs#image-auto-scaleing /data fuse allow_other,url=http://s3.cn-north-1.amazonaws.com.cn,endpoint=cn-north-1 0 0" >>/etc/fstab
###挂载测试
umount /data 卸载/data
mount -a 挂载/data
挂载成功之后,然后我们就可以像使用本地路径一样去使用这个s3存储了。
国外s3挂载
###需要更换自己的AKSK echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > /etc/passwd-s3fs chmod 600 /etc/passwd-s3fs ###创建挂载点 mkdir /data ###挂载一个新加披的s3 s3fs lemon-test /data -o passwd_file=/etc/passwd-s3fs -o endpoint=ap-southeast-1 s3fs bsm1202 /mnt -o passwd_file=./.passwd-s3fs -o url=https://s3-ap-southeast-1.amazonaws.com ###写入fstab,开机自启 echo "/usr/bin/s3fs#lim-test-1 /data fuse allow_other,endpoint=ap-southeast-1 0 0" >>/etc/fstab ###检查fstab是否可以生效 umount /data ###先卸载 mount -a ###挂载,如果成功则代表OK。如果返回其他的,请检查写入的语法
自我判定
序号 | 判定描述 | 自我判定(是/否) |
|---|---|---|
1 | 在各搜索引擎中是否能找到知识信息(包括但不限于Google、百度、Bing) | 是 |
2 | 是否需要代码集成开发 | 否 |




