亚马逊云教程3:文件传输,扩大存储,S3,快速输入命令
概要:与远程服务器之间的文件上传与下载,扩大服务器的存储空间,亚马逊S3的使用。快速输入命令行命令的技巧。
读者:云初学者
时间:6500字,阅读10min,操作15min
前提:亚马逊云教程2:新建Ubuntu用户,sudo权限,安装软件
在使用服务器的过程中,我们会经常在服务器和本地电脑之间进行文件传输。比如,我们把需要分析的文件从本地电脑传到服务器上,或者我们把分析完成之后的文件从服务器下载到本地电脑。本教程将讲解文件传输及存储相关的内容,为后面的数据分析做铺垫;同时,顺带讲解了如何快速输入一行命令。
文件传输
在大多桌面系统中,我们要把文件从一个文件夹复制到另一个文件夹的时候,大多都是右键复制,然后粘贴。而在命令行中,对应的是 cp
(copy)这个命令。不过cp只能在服务器内部复制文件,要完成本地和远程的传输,我们可以使用 scp
这个命令(secure cp)。 scp
基于ssh连接,所以需要私有和共有密钥的匹配。
上传单个文件
显示指明ssh私有密钥位置:
➜ ~ scp -i .ssh/tutorial_rsa local_test_file.txt roden@35.160.40.187:
# 这一行命令在本地电脑上运行
# scp 是调用软件; -i 以及后面的参数是显示使用私有密钥; 之后的参数,第一个是本地要上传的文件,我这里使用的
# 是“local_test_file.txt”;第二个是远程服务器的用户名和Puclib IP。注意,一定要在IP后面添加冒号“:”,冒号后
# 面紧跟远程服务器里面的路径,留空的话,就是用户根目录。
local_test_file.txt 100% 5 0.0KB/s 00:00
# 上面是成功传输的输出
# 这是上传到远端服务器upload_test文件夹下的例子,把路径设置成文件夹的名字就好了。
➜ ~ scp -i .ssh/tutorial_rsa local_test_file.txt roden@35.160.40.187:upload_test
local_test_file.txt 100% 5 0.0KB/s 00:00
如果我们创建SSH密钥对的时候,使用的是默认的 id_rsa
文件名的话,我们可以省略 -i
那个参数。
➜ ~ scp test_folder/local_test_file.txt roden@35.160.40.187:new_upload.txt
local_test_file.txt 100% 5 0.0KB/s 00:00
在上面的命令里面,我上传的是testfolder里面的一个文件localtestfile.txt,上传到了用户根目录,不过我把它重新命名成了newupload.txt。所以 scp
是可以给上传的文件一个新的名字的。
上传整个文件夹
有的时候单个单个的上传文件太慢,可以上传整个文件夹。我们只需要给 scp
添加一个 -r
的参数就可以上传文件夹了。
➜ ~ scp -r test_folder roden@35.160.40.187:target_folder/
local_test_file.txt 100% 5 0.0KB/s 00:00
下载文件和文件夹
理解了上传,下载就很好学了。我们只需要调换最后两个参数的位置就好了。之前是从本地到服务器,现在换成从服务器到本地。
➜ ~ mkdir test_folder # 创建了一个新文件夹
➜ ~ cd test_folder # 进入到那个文件夹
➜ test_folder ls # 显示文件夹内容,目前为空
➜ test_folder scp roden@35.160.40.187:file.txt . # 下载文件,"."代表当前目录
file.txt 100% 2 0.0KB/s 00:00
➜ test_folder scp -r roden@35.160.40.187:target_folder . # 下载文件夹
local_test_file.txt 100% 5 0.0KB/s 00:00
➜ test_folder ls # 显示文件夹内容,可以看到我们下载下来的文件和文件夹
file.txt target_folder
➜ test_folder # 返回到接收命令状态
快速输入命令
首先要掌握上下键的使用,按 ”↑“,会给出前面输入过的命令,往前翻滚命令行历史记录,按 ”↓“ 会往后翻滚命令行历史记录。命令 history
会输出所有的历史记录。"Control A"会把光标移动到命令行行首,"Control E"会移动到行尾(我的理解是,A是第一个字母,或者是Ahead;E代表End)。”Option ←“ 或者”Option →“可以左右移动一个单词,Win里面是”alt ←“。在输入路径,或者输入命令的时候,使用”tab“键可以提示你有哪些候选项,如果我们记得不是很清楚,我们可以敲一半命令,或者敲一半路径,然后按下”tab“键,看看提示。
扩大存储
当我们按照"亚马逊云教程1:创建并连接EC2"里讲的步骤创建一个EC2服务器实例的时候,我们设置的是15GB的存储空间。当我们把这15GB占满了之后,就像本地电脑上的硬盘没有剩余空间了。一般我们可以采取删除部分旧文件来暂时解决问题,或者买块新硬盘查到主机里面。而对于亚马逊云来说,我们可以给服务器添加一个存储“卷”,其效果就像给家里的电脑添加了一块硬盘。下面是详细的流程。
查看服务器所在区域
我们需要登录到AWS EC2管理界面,在左侧的导航栏,点击“INSTANCES”栏目下的“Instances”,在右边的新页面里面,向右侧移动,查看我们服务器的“Availability Zone”,这个值跟我们创建服务器时选择的参数有关。在创建服务器的第3步,“Subnet(子节点)”就是设置这个值的。如果我们当时没有选择,默认是AWS系统会根据整体的资源耗用情况自动选择一个给你。我正在使用的服务器的“Availability Zone(使用区域)”是“us-west-2c”。我们需要在这个区创建我们的硬盘。一个不太恰当的比喻是,如果你的主机在北京,你就必须在北京买硬盘。(但实际上这个us-west-2c后面的c,是逻辑区域,并不是物理区域,感兴趣的朋友可以查看官网介绍详细了解。)
创建卷
然后我们在看左侧的导航栏,在“ELASTIC BLOCK STORE(弹性区块存储)”栏目下,点击“Volumes(卷)”,进入卷管理页面,点击右边新页面左上角的“Create Volume(新建卷)”。第一个选项,“Volume Type(卷类型)”,推荐使用默认的SSD(价格信息请看AWS教程1)。Size(大小),我们是学习,选择最小的1GB就好。“Availability Zone(使用区域)”,选择我们主机所在的区域。所以我这里选择“us-west-2c”。然后点击右下角“Create”。
挂载卷
然后我们可以在卷管理页面,右键点击我们刚刚创建的新卷。点击“Attach Volume”,在“Instance”里面点击一下鼠标,会出现在相同区域内的服务器,我们选择我们要添加卷的那一台服务器(如果你启动了多台服务器,需要在EC2管理界面确认一下服务器的ID,我只启动了一台服务器,所以直接选那一个就好了)。其余的保留默认值然后点击右下角“Attach”就好。稍微解释一下后面的“Device”,默认值是“/dev/sdf”,是说,我们把这个卷,也就是这个硬盘,设置一个名字,叫“sdf”,我们要记住的是最后那个“f”。下面有一行橘红色的提示,说的是,在服务器系统里面,较新的Linux系统会把我们设置的名字自动更改成“/dev/xvdf”。我们要记住这个“/dev/xvdf”,因为我们还要在命令行里面进行一次设置。
打一个比喻。我们创建了一所学校(服务器),后来发现教室不够用了,我们在学校旁边建了一栋楼(硬盘),把这栋楼命名成了“/dev/sdf”,然后我们给校长说了一声,这栋楼给你们当教学楼用,然后校长把这栋楼命名成了“/dev/xvdf”。然后校长还得要安排校内的人员准备接管这栋楼。这就是接下来我们要在服务器里面做的工作了。首先ssh登录到服务器 ssh roden@35.160.40.187
。
roden@ip-172-31-2-87:~$ ls /dev/xvd* # 查看一下服务器是否能看到xvdf。 * 是通配符,匹配所有其他字符。
# 可以看到xvdf确实在这里
/dev/xvda /dev/xvda1 /dev/xvdf
roden@ip-172-31-2-87:~$ lsblk # 我们也可以用这个命令来查看。
# 我的推测是list block的缩写
# 可以看到下面的输出里面,xvdf是1G大小的硬盘(disk)。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 15G 0 disk
└─xvda1 202:1 0 15G 0 part /
xvdf 202:80 0 1G 0 disk
接下来要做的事情,是要把这个卷格式化。就像学校要安排教室的布局一样,舞蹈课教室有舞蹈课教室的布局,英语课有英语课的布局,实验课有实验课的布局。不过硬盘的格式化,可选的格式并不多,而且大多格式可以适用很多用途。感兴趣的朋友可以查看推荐阅读里面的AWS官方说明书。
roden@ip-172-31-2-87:~$ sudo mkfs -t ext4 / # 按tab, 下面会出现提示
/dev/xvda /dev/xvda1 /dev/xvdf /path/to/file
roden@ip-172-31-2-87:~$ sudo mkfs -t ext4 /dev/xvd # 输入d,之后再按tab
/dev/xvda /dev/xvda1 /dev/xvdf
roden@ip-172-31-2-87:~$ sudo mkfs -t ext4 /dev/xvdf # 输入f
[sudo] password for roden:
mke2fs 1.42.13 (17-May-2015) # 下面的内容就是格式化过程中的输出
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 68afe733-b995-49ec-81ce-34da38a7f5e2
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
roden@ip-172-31-2-87:~$ # 回到等待命令状态,格式化完毕
之后还要做一件事情,就是把这栋教学楼划归到一个部门管辖,比如说生命科学院、或者计算机学院、或者是日语系、或者只是某一节课需要这一整栋楼。对应到Linux里面,就是挂载这个卷(硬盘)到某一个文件夹里面。
roden@ip-172-31-2-87:~$ mkdir disk_1 # 新建一个文件夹
roden@ip-172-31-2-87:~$ ls
bwa disk_1
roden@ip-172-31-2-87:~$ sudo mount /dev/xvdf disk_1/ # 挂载 xvdf 到 disk_1 文件夹的命令
roden@ip-172-31-2-87:~$ df -h # df 是disk free的缩写,-h是以方便人类阅读的方式显示大小
# 可以看到 xvdf 有908M的可用空间,挂载在了/home/roden/disk_1
Filesystem Size Used Avail Use% Mounted on
udev 488M 0 488M 0% /dev
tmpfs 100M 11M 89M 11% /run
/dev/xvda1 15G 1.5G 14G 10% /
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1001
/dev/xvdf 976M 1.3M 908M 1% /home/roden/disk_1
之后我们就可以使用这个硬盘了。不过一个细节是,目前这个硬盘挂载目录的所有者是root。为了平时操作方便,我们可以把这个目录的所有者(owner)改为我们自己。
roden@ip-172-31-2-87:~$ ll # ls -la 的缩写,查看当前目录下的文件和文件夹的属性
total 48
drwxr-xr-x 7 roden admin 4096 May 27 19:22 ./
drwxr-xr-x 4 root root 4096 Apr 30 22:38 ../
-rw------- 1 roden admin 859 May 27 00:56 .bash_history
-rw-r--r-- 1 roden admin 220 Apr 30 22:38 .bash_logout
-rw-r--r-- 1 roden admin 3771 Apr 30 22:38 .bashrc
drwxr-xr-x 4 roden admin 4096 May 15 01:54 bwa/
drwx------ 2 roden admin 4096 Apr 30 23:41 .cache/
drwx------ 3 roden admin 4096 May 14 22:27 .config/
drwxr-xr-x 3 root root 4096 May 27 19:16 disk_1/
-rw-r--r-- 1 roden admin 655 Apr 30 22:38 .profile
drwx------ 2 roden admin 4096 May 26 20:37 .ssh/
-rw-r--r-- 1 roden admin 0 May 1 05:52 .sudo_as_admin_successful
-rw------- 1 roden admin 1663 May 26 20:37 .viminfo
roden@ip-172-31-2-87:~$ ls -l # ls -l 不会显示隐藏文件(以.开头)
total 8
drwxr-xr-x 4 roden admin 4096 May 15 01:54 bwa
drwxr-xr-x 3 root root 4096 May 27 19:16 disk_1 # 我们可以看到disk_1的所有者为root。
# 这里出现了两次root。第一个是用户,第二个是用户组。
# (可能是因为美国人习惯从小集合说到大集合,比如门牌号、街道、城市、州。这里用户、用户组)
# 用户就像学生,用户组就像生物系的学生。
# 不过在linux系统里面,所有的用户可以自成一个用户组。
# 所以这句话是说disk_1这个文件夹属于root用户,属于root用户组
roden@ip-172-31-2-87:~$ sudo chown roden:roden disk_1/ # 用这句话change owner,改为自己
roden@ip-172-31-2-87:~$ ls -l
total 8
drwxr-xr-x 4 roden admin 4096 May 15 01:54 bwa
drwxr-xr-x 3 roden roden 4096 May 27 19:16 disk_1
好了,现在我们就可以正式开始使用这个新卷了。
roden@ip-172-31-2-87:~$ cd disk_1/
roden@ip-172-31-2-87:~/disk_1$ ls
lost+found # 这个文件夹是每个新硬盘都会默认自带的一个文件夹,有兴趣的朋友可以详细了解一下。
roden@ip-172-31-2-87:~/disk_1$ echo 1234 > text.txt
roden@ip-172-31-2-87:~/disk_1$ ls
lost+found text.txt
roden@ip-172-31-2-87:~/disk_1$ cp text.txt text2.txt
roden@ip-172-31-2-87:~/disk_1$ vi test3.txt
roden@ip-172-31-2-87:~/disk_1$ cat te
test3.txt text2.txt text.txt
roden@ip-172-31-2-87:~/disk_1$ cat te*
123
1234
1234
roden@ip-172-31-2-87:~/disk_1$ head te
test3.txt text2.txt text.txt
roden@ip-172-31-2-87:~/disk_1$ head te*
==> test3.txt <==
123
==> text2.txt <==
1234
==> text.txt <==
1234
使用S3
Amazon S3是Simple Storage Service的缩写。有点类似于面向大多数用户的存储文件、照片的“百度云、微云”等,但是你对文件的管理权限更大,文件在整个互联网上被获取的方法更加便捷。S3和前面的卷在收费上的区别是,S3是使用了1G就付1G的钱,而卷,是按照创建时设置好的大小收费的,不管你是否占满了设定的空间。
点击AWS控制台最左上角的AWS图标,或者“Services”,然后在搜索框中输入“S3”,然后按下回车进入到S3的控制台。我们要做的第一件事,是创建一个“桶”(bucket)。就像我们要办一所大学的话,首先要建一栋房子。点击左上方的“Create bucket”,然后输入这个桶的名字(Bucket name),这个必须得是全世界独一无二的。我使用的是“tutorial-roden”,然后选择地区,建议选择和EC2服务器相同的地区。然后直接点击左下角的“Create”。(如果熟练的话,也可以点击“Next”设置其他信息。)然后点击进入新创建的桶。点击左上角的“Upload”,然后点击“Add files”,添加一个没有重要信息的测试文件,然后点击右下角Next,然后可以看到“Manage public permissions”,点开,看到下面有Everyone,可以在后面把Objects下的“Read”(读取)选项框勾上,这样之后你会获取一个整个互联网都可以下载的连接;然后点击左下方的“Upload”上传文件。上传成功后,点击那个文件,可以看到,最下方有一栏是“Link”,下面那个链接就是全网所有人都访问的了。这是因为我们之前设置了“Everyone”都可以“Read”,如果我们不这么设置,就算有这个链接的网址,也看不到文件。
从S3传输文件到EC2
这个步骤需要EC2要从S3获取文件信息。如果我们把登录到EC2服务器的用户比喻成学生,把S3比喻成学校里面的资源库,如图书馆、成绩单系统等等。那么当EC2用户需要获取一些公共信息的时候,比如说图书馆里面有什么书籍,不需要进行身份验证就可以获取这个信息了。所以如果我们在S3中,把文件的权限设置成了“Everyone”都可以“Read”,那么我们可以很简单的从S3下载文件到EC2服务器。使用 wget
(world wide web and get)紧跟一个下载链接就可以下载公有文件了。
roden@ip-172-31-2-87:~$ ls
bwa disk_1
roden@ip-172-31-2-87:~$ mkdir download # 新建一个文件夹存放下载的东西
roden@ip-172-31-2-87:~$ cd download/
roden@ip-172-31-2-87:~/download$ wget https://s3-us-west-2.amazonaws.com/tutorial-roden/s3_test.txt
# 这句话就是下载命令了
--2017-05-29 17:27:23-- https://s3-us-west-2.amazonaws.com/tutorial-roden/s3_test.txt
Resolving s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)... 54.231.185.0
Connecting to s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)|54.231.185.0|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2 [text/plain]
Saving to: 's3_test.txt’
s3_test.txt 100%[==================================>] 2 --.-KB/s in 0s
2017-05-29 17:27:23 (118 KB/s) - 's3_test.txt’ saved [2/2] # 下载成功
roden@ip-172-31-2-87:~/download$ ls
s3_test.txt
但是如果是重要信息,比如说你要查询自己的成绩,就需要身份验证了。你可能会去到成绩查询窗口,出示自己的学生卡,然后就可以拿到成绩单了。不过这里面还有一个前提,就是学校把你的信息录入了学校的信息库,然后给你生成了一张学生卡。虽然EC2是AWS内部的服务器,但是如果你登录到服务器里面,使用命令行,就和你在任何其他电脑上面使用命令行一样,AWS的S3并不知道你这个服务器,或者说正在使用这个服务器的用户,是经过AWS登录验证后的用户。所以我们最先要做的事情,就是在AWS里面生成一个用于验证的用户信息,然后获得一张学生卡,然后把学生卡的信息存到我们的服务器里面。
我们首先进入到AWS控制台,然后搜索“IAM”,进入IAM控制台。然后点击左侧“Users”,“Add user”。填写必要信息,User name是用户名,类似学生卡上面学生的名字,可以任意设置,我这里写的是“roden-tutorial”。然后Access type,就是验证方法,这里只勾选Programmatic access。这个和第二个提供密码的区别就像,第一个有一个刷卡机,你刷一下卡就验证通过了;第二个就是一个人在窗口那里,你口述你的密码给他,然后密码匹配了就通过了;两者有不同的用途,我们接下来要用命令行下载文件,选择第一个。
然后点击右下角“Next Permissions”。点击“Create group(创建小组)”。小组的含义就是,比如有的学生是生物系的,有的学生是计算机系的,生物系的学生会有去生物实验楼的权限,而计算机系的学生会有去机房的权限。我们可以针对小组设置该小组所有学生的权限,而不需要针对每一个学生都设置其权限。"Group name"可以随意定,一般会写作有一定描述性含义的词,我用的是“S3FullAccess”。然后下方有一张表格,是一堆权限勾选框,在表格上方中央搜索框中输入“S3”,然后勾选“AmazonS3FullAccess”。因为后面我们还要上传文件,所以选择Full而不是ReadOnly。然后点击右下角Create group。
小组创建好了之后,点击“Next Review”。这里就是检查一下,有没有写作或者选错东西。
点击“Create user”。可以看到新出来的页面里面,有一个“Access key ID”和“Secret access key”(点击“Show”可以看到密文)。这个就是我们的学生卡了。我们把浏览器停留在这个页面不要动,等一会儿要复制这里的信息到命令行。
登录到服务器,然后开始把这个学生卡加入到我们的服务器里面。我们要和AWS的S3在命令行进行交互的话,需要使用到一个软件,就叫 aws
。所以要先安装它。
roden@ip-172-31-2-87:~/download$ aws # 尝试使用
The program 'aws' is currently not installed. You can install it by typing:
sudo apt install awscli
roden@ip-172-31-2-87:~/download$ sudo apt install awscli # 安装
[sudo] password for roden:
Reading package lists... Done
...
Setting up python3-botocore (1.4.70-1~16.04.0) ...
Setting up python3-s3transfer (0.1.9-1~16.04.0) ...
Setting up awscli (1.11.13-1ubuntu1~16.04.0) ...
Processing triggers for libc-bin (2.23-0ubuntu7) ...
roden@ip-172-31-2-87:~/download$ # 安装成功
接下来我们开始配置aws这个软件,也就是把学生卡添加进去,这样我们以后使用aws的时候就不需要每次都出示学生卡。
roden@ip-172-31-2-87:~/download$ aws configure # 开始配置
AWS Access Key ID [None]: AKIAJURODENSAVRH5MOA # 这个就是之前浏览器里面显示出的学生卡卡号
AWS Secret Access Key [None]: LightAWSxq4zf9YixGzc7REoxFJ1UNwhff5dwR/t # 学生卡密文
Default region name [None]: us-west-2 # 默认地区,选择和EC2,S3相同的地区。
# 不记得的话,可以去控制台查。只需要详细到最后的2就可以了,后面的a,b,或者c的逻辑区域,不需要添加。
Default output format [None]: # 默认输出格式。也就是我们每运行一条命令,它输出消息的格式。
# 这里我使用了默认的None,感兴趣的朋友可以查查资料学习各种格式的区别。
注意在配置地区的时候,详细程度只需要到地理位置就行了,比如“us-west-2”,EC2信息里面显示的,后面的a,b, 或者c,是逻辑区域,不需要详细到那一步。不然后面的命令会报错。
这样我们的验证信息就配置好了,可以开始再上传一个私有(Private)文件,然后下载到我们的服务器了。进入到S3的一个桶里面,上传一个文件,在权限设置那里,不要做任何更改,这样就是默认的私有文件。然后回到命令行开始下载私有文件。
roden@ip-172-31-2-87:~/download$ ls
s3_test.txt
roden@ip-172-31-2-87:~/download$ aws s3 cp s3://tutorial-roden/s3_private.txt .
download: s3://tutorial-roden/s3_private.txt to ./s3_private.txt
roden@ip-172-31-2-87:~/download$ ls
s3_private.txt s3_test.txt
# 可以看到成功下载了文件
下载文件的那个命令, aws s3 cp
就是aws工具箱中的s3小工具箱中的cp这个工具,也就是copy的简写。后面跟随的是S3远程路径 s3://tutorial-roden/s3_private.txt
和服务器里面的本地路径 .
,也就是当前文件夹。注意私有文件的S3路径表示方法“s3://桶的名字/(路径/)文件名”。(这里说明一下“本地”这个概念。它是相对的。当我们从家里的电脑登录到EC2服务器时,我们把家里的电脑叫做本地电脑,把服务器叫做远程服务器;当我们从S3上面下载文件到服务器时,我们把S3叫做远程资源库,把EC2里面的那个命令行叫做本地。)
从EC2传输文件到S3
当我们成功下载了私有文件之后,上传就比较简单了。只需要把后面两个路径的顺序调换一下,从本地到S3。
roden@ip-172-31-2-87:~/download$ echo 1234 > upload_test.txt # 临时创建了一个新文件
roden@ip-172-31-2-87:~/download$ ls
s3_private.txt s3_test.txt upload_test.txt
roden@ip-172-31-2-87:~/download$ aws s3 cp upload_test.txt s3://tutorial-roden/
# 上传文件,注意两个路径的先后
upload: ./upload_test.txt to s3://tutorial-roden/upload_test.txt
roden@ip-172-31-2-87:~/download$ # 上传成功
推荐阅读
亚马逊云教程4
使 Amazon EBS 卷可用,亚马逊官方说明书,英文,中文。
开始设置 AWS Command Line Interface,亚马逊官方说明书,英文,中文。
配置 AWS Command Line Interface,亚马逊官方说明书,英文,中文。
Amazon S3 和 Amazon EC2,亚马逊官方说明书,英文,中文。
集锦卡
上传单个文件到服务器并改名
scp test_folder/local_test_file.txt roden@35.160.40.187:new_upload.txt
上传整个文件夹
scp -r test_folder roden@35.160.40.187:target_folder/
下载文件
scp roden@35.160.40.187:file.txt .
下载文件夹
scp -r roden@35.160.40.187:target_folder .
快速输入命令,”tab“键补齐,使用”↑“, ”↓“ ,
history
,"Control A"会把光标移动到命令行行首,"Control E"会移动到行尾。”Option ←“ 或者”Option →“可以左右移动一个单词,Win里面是”alt ←“。扩大存储时,创建卷注意选择和EC2相同的地区以及逻辑区域。
lsblk
查看卷信息,sudo mkfs -t ext4 /dev/xvdf
格式化新卷,sudo mount /dev/xvdf disk_1/
挂载新卷。sudo chown roden:roden disk_1/
更改文件夹所属用户和用户组S3的使用。下载公有文件
wget https://s3-us-west-2.amazonaws.com/tutorial-roden/s3_test.txt
在AWS IAM控制台创建新用户和用户验证口令。
安装
aws
,sudo apt install awscli
;配置,aws configure
从S3下载私有文件,
aws s3 cp s3://tutorial-roden/s3_private.txt .
上传文件到S3,
aws s3 cp upload_test.txt s3://tutorial-roden/