打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
亚马逊云教程3:文件传输,扩大存储,S3,快速输入命令

概要:与远程服务器之间的文件上传与下载,扩大服务器的存储空间,亚马逊S3的使用。快速输入命令行命令的技巧。

读者:云初学者

时间:6500字,阅读10min,操作15min

前提:亚马逊云教程2:新建Ubuntu用户,sudo权限,安装软件

在使用服务器的过程中,我们会经常在服务器和本地电脑之间进行文件传输。比如,我们把需要分析的文件从本地电脑传到服务器上,或者我们把分析完成之后的文件从服务器下载到本地电脑。本教程将讲解文件传输及存储相关的内容,为后面的数据分析做铺垫;同时,顺带讲解了如何快速输入一行命令。


文件传输

在大多桌面系统中,我们要把文件从一个文件夹复制到另一个文件夹的时候,大多都是右键复制,然后粘贴。而在命令行中,对应的是 cp (copy)这个命令。不过cp只能在服务器内部复制文件,要完成本地和远程的传输,我们可以使用 scp这个命令(secure cp)。 scp 基于ssh连接,所以需要私有和共有密钥的匹配。

上传单个文件

显示指明ssh私有密钥位置:

  1.  ~ scp -i .ssh/tutorial_rsa local_test_file.txt roden@35.160.40.187:

  2. # 这一行命令在本地电脑上运行

  3. # scp 是调用软件; -i 以及后面的参数是显示使用私有密钥; 之后的参数,第一个是本地要上传的文件,我这里使用的

  4. # 是“local_test_file.txt”;第二个是远程服务器的用户名和Puclib IP。注意,一定要在IP后面添加冒号“:”,冒号后

  5. # 面紧跟远程服务器里面的路径,留空的话,就是用户根目录。

  6. local_test_file.txt                           100%    5     0.0KB/s   00:00

  7. # 上面是成功传输的输出

  8. # 这是上传到远端服务器upload_test文件夹下的例子,把路径设置成文件夹的名字就好了。

  9.  ~ scp -i .ssh/tutorial_rsa local_test_file.txt roden@35.160.40.187:upload_test

  10. local_test_file.txt                           100%    5     0.0KB/s   00:00

如果我们创建SSH密钥对的时候,使用的是默认的 id_rsa文件名的话,我们可以省略 -i 那个参数。

  1.  ~ scp test_folder/local_test_file.txt roden@35.160.40.187:new_upload.txt

  2. local_test_file.txt                                                100%    5     0.0KB/s   00:00

在上面的命令里面,我上传的是testfolder里面的一个文件localtestfile.txt,上传到了用户根目录,不过我把它重新命名成了newupload.txt。所以 scp是可以给上传的文件一个新的名字的。

上传整个文件夹

有的时候单个单个的上传文件太慢,可以上传整个文件夹。我们只需要给 scp添加一个 -r的参数就可以上传文件夹了。

  1.  ~ scp -r test_folder roden@35.160.40.187:target_folder/

  2. local_test_file.txt                                                100%    5     0.0KB/s   00:00

下载文件和文件夹

理解了上传,下载就很好学了。我们只需要调换最后两个参数的位置就好了。之前是从本地到服务器,现在换成从服务器到本地。

  1.  ~ mkdir test_folder # 创建了一个新文件夹

  2.  ~ cd test_folder # 进入到那个文件夹

  3.  test_folder ls # 显示文件夹内容,目前为空

  4.  test_folder scp roden@35.160.40.187:file.txt . # 下载文件,"."代表当前目录

  5. file.txt                                                           100%    2     0.0KB/s   00:00

  6.  test_folder scp -r roden@35.160.40.187:target_folder . # 下载文件夹

  7. local_test_file.txt                                                100%    5     0.0KB/s   00:00

  8.  test_folder ls # 显示文件夹内容,可以看到我们下载下来的文件和文件夹

  9. file.txt      target_folder

  10.  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

  1. roden@ip-172-31-2-87:~$ ls /dev/xvd* # 查看一下服务器是否能看到xvdf。 * 是通配符,匹配所有其他字符。

  2. # 可以看到xvdf确实在这里

  3. /dev/xvda  /dev/xvda1  /dev/xvdf

  4. roden@ip-172-31-2-87:~$ lsblk # 我们也可以用这个命令来查看。

  5. # 我的推测是list block的缩写

  6. # 可以看到下面的输出里面,xvdf是1G大小的硬盘(disk)。

  7. NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

  8. xvda    202:0    0  15G  0 disk

  9. └─xvda1 202:1    0  15G  0 part /

  10. xvdf    202:80   0   1G  0 disk

接下来要做的事情,是要把这个卷格式化。就像学校要安排教室的布局一样,舞蹈课教室有舞蹈课教室的布局,英语课有英语课的布局,实验课有实验课的布局。不过硬盘的格式化,可选的格式并不多,而且大多格式可以适用很多用途。感兴趣的朋友可以查看推荐阅读里面的AWS官方说明书。

  1. roden@ip-172-31-2-87:~$ sudo mkfs -t ext4 / # 按tab, 下面会出现提示

  2. /dev/xvda      /dev/xvda1     /dev/xvdf      /path/to/file

  3. roden@ip-172-31-2-87:~$ sudo mkfs -t ext4 /dev/xvd # 输入d,之后再按tab

  4. /dev/xvda   /dev/xvda1  /dev/xvdf

  5. roden@ip-172-31-2-87:~$ sudo mkfs -t ext4 /dev/xvdf # 输入f

  6. [sudo] password for roden:

  7. mke2fs 1.42.13 (17-May-2015) # 下面的内容就是格式化过程中的输出

  8. Creating filesystem with 262144 4k blocks and 65536 inodes

  9. Filesystem UUID: 68afe733-b995-49ec-81ce-34da38a7f5e2

  10. Superblock backups stored on blocks:

  11.    32768, 98304, 163840, 229376

  12. Allocating group tables: done

  13. Writing inode tables: done

  14. Creating journal (8192 blocks): done

  15. Writing superblocks and filesystem accounting information: done

  16. roden@ip-172-31-2-87:~$ # 回到等待命令状态,格式化完毕

之后还要做一件事情,就是把这栋教学楼划归到一个部门管辖,比如说生命科学院、或者计算机学院、或者是日语系、或者只是某一节课需要这一整栋楼。对应到Linux里面,就是挂载这个卷(硬盘)到某一个文件夹里面。

  1. roden@ip-172-31-2-87:~$ mkdir disk_1 # 新建一个文件夹

  2. roden@ip-172-31-2-87:~$ ls

  3. bwa  disk_1

  4. roden@ip-172-31-2-87:~$ sudo mount /dev/xvdf disk_1/ # 挂载 xvdf 到 disk_1 文件夹的命令

  5. roden@ip-172-31-2-87:~$ df -h # df 是disk free的缩写,-h是以方便人类阅读的方式显示大小

  6. # 可以看到 xvdf 有908M的可用空间,挂载在了/home/roden/disk_1

  7. Filesystem      Size  Used Avail Use% Mounted on

  8. udev            488M     0  488M   0% /dev

  9. tmpfs           100M   11M   89M  11% /run

  10. /dev/xvda1       15G  1.5G   14G  10% /

  11. tmpfs           496M     0  496M   0% /dev/shm

  12. tmpfs           5.0M     0  5.0M   0% /run/lock

  13. tmpfs           496M     0  496M   0% /sys/fs/cgroup

  14. tmpfs           100M     0  100M   0% /run/user/1001

  15. /dev/xvdf       976M  1.3M  908M   1% /home/roden/disk_1

之后我们就可以使用这个硬盘了。不过一个细节是,目前这个硬盘挂载目录的所有者是root。为了平时操作方便,我们可以把这个目录的所有者(owner)改为我们自己。

  1. roden@ip-172-31-2-87:~$ ll # ls -la 的缩写,查看当前目录下的文件和文件夹的属性

  2. total 48

  3. drwxr-xr-x 7 roden admin 4096 May 27 19:22 ./

  4. drwxr-xr-x 4 root  root  4096 Apr 30 22:38 ../

  5. -rw------- 1 roden admin  859 May 27 00:56 .bash_history

  6. -rw-r--r-- 1 roden admin  220 Apr 30 22:38 .bash_logout

  7. -rw-r--r-- 1 roden admin 3771 Apr 30 22:38 .bashrc

  8. drwxr-xr-x 4 roden admin 4096 May 15 01:54 bwa/

  9. drwx------ 2 roden admin 4096 Apr 30 23:41 .cache/

  10. drwx------ 3 roden admin 4096 May 14 22:27 .config/

  11. drwxr-xr-x 3 root  root  4096 May 27 19:16 disk_1/

  12. -rw-r--r-- 1 roden admin  655 Apr 30 22:38 .profile

  13. drwx------ 2 roden admin 4096 May 26 20:37 .ssh/

  14. -rw-r--r-- 1 roden admin    0 May  1 05:52 .sudo_as_admin_successful

  15. -rw------- 1 roden admin 1663 May 26 20:37 .viminfo

  16. roden@ip-172-31-2-87:~$ ls -l # ls -l 不会显示隐藏文件(以.开头)

  17. total 8

  18. drwxr-xr-x 4 roden admin 4096 May 15 01:54 bwa

  19. drwxr-xr-x 3 root  root  4096 May 27 19:16 disk_1 # 我们可以看到disk_1的所有者为root。

  20. # 这里出现了两次root。第一个是用户,第二个是用户组。

  21. # (可能是因为美国人习惯从小集合说到大集合,比如门牌号、街道、城市、州。这里用户、用户组)

  22. # 用户就像学生,用户组就像生物系的学生。

  23. # 不过在linux系统里面,所有的用户可以自成一个用户组。

  24. # 所以这句话是说disk_1这个文件夹属于root用户,属于root用户组

  25. roden@ip-172-31-2-87:~$ sudo chown roden:roden disk_1/ # 用这句话change owner,改为自己

  26. roden@ip-172-31-2-87:~$ ls -l

  27. total 8

  28. drwxr-xr-x 4 roden admin 4096 May 15 01:54 bwa

  29. drwxr-xr-x 3 roden roden 4096 May 27 19:16 disk_1

好了,现在我们就可以正式开始使用这个新卷了。

  1. roden@ip-172-31-2-87:~$ cd disk_1/

  2. roden@ip-172-31-2-87:~/disk_1$ ls

  3. lost+found # 这个文件夹是每个新硬盘都会默认自带的一个文件夹,有兴趣的朋友可以详细了解一下。

  4. roden@ip-172-31-2-87:~/disk_1$ echo 1234 > text.txt

  5. roden@ip-172-31-2-87:~/disk_1$ ls

  6. lost+found  text.txt

  7. roden@ip-172-31-2-87:~/disk_1$ cp text.txt text2.txt

  8. roden@ip-172-31-2-87:~/disk_1$ vi test3.txt

  9. roden@ip-172-31-2-87:~/disk_1$ cat te

  10. test3.txt  text2.txt  text.txt

  11. roden@ip-172-31-2-87:~/disk_1$ cat te*

  12. 123

  13. 1234

  14. 1234

  15. roden@ip-172-31-2-87:~/disk_1$ head te

  16. test3.txt  text2.txt  text.txt

  17. roden@ip-172-31-2-87:~/disk_1$ head te*

  18. ==> test3.txt <==

  19. 123

  20. ==> text2.txt <==

  21. 1234

  22. ==> text.txt <==

  23. 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)紧跟一个下载链接就可以下载公有文件了。

  1. roden@ip-172-31-2-87:~$ ls

  2. bwa  disk_1

  3. roden@ip-172-31-2-87:~$ mkdir download # 新建一个文件夹存放下载的东西

  4. roden@ip-172-31-2-87:~$ cd download/

  5. roden@ip-172-31-2-87:~/download$ wget https://s3-us-west-2.amazonaws.com/tutorial-roden/s3_test.txt

  6. # 这句话就是下载命令了

  7. --2017-05-29 17:27:23--  https://s3-us-west-2.amazonaws.com/tutorial-roden/s3_test.txt

  8. Resolving s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)... 54.231.185.0

  9. Connecting to s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)|54.231.185.0|:443... connected.

  10. HTTP request sent, awaiting response... 200 OK

  11. Length: 2 [text/plain]

  12. Saving to: 's3_test.txt

  13. s3_test.txt               100%[==================================>]       2  --.-KB/s    in 0s

  14. 2017-05-29 17:27:23 (118 KB/s) - 's3_test.txt saved [2/2] # 下载成功

  15. roden@ip-172-31-2-87:~/download$ ls

  16. 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。所以要先安装它。

  1. roden@ip-172-31-2-87:~/download$ aws # 尝试使用

  2. The program 'aws' is currently not installed. You can install it by typing:

  3. sudo apt install awscli

  4. roden@ip-172-31-2-87:~/download$ sudo apt install awscli # 安装

  5. [sudo] password for roden:

  6. Reading package lists... Done

  7. ...

  8. Setting up python3-botocore (1.4.70-1~16.04.0) ...

  9. Setting up python3-s3transfer (0.1.9-1~16.04.0) ...

  10. Setting up awscli (1.11.13-1ubuntu1~16.04.0) ...

  11. Processing triggers for libc-bin (2.23-0ubuntu7) ...

  12. roden@ip-172-31-2-87:~/download$ # 安装成功

接下来我们开始配置aws这个软件,也就是把学生卡添加进去,这样我们以后使用aws的时候就不需要每次都出示学生卡。

  1. roden@ip-172-31-2-87:~/download$ aws configure # 开始配置

  2. AWS Access Key ID [None]: AKIAJURODENSAVRH5MOA # 这个就是之前浏览器里面显示出的学生卡卡号

  3. AWS Secret Access Key [None]: LightAWSxq4zf9YixGzc7REoxFJ1UNwhff5dwR/t # 学生卡密文

  4. Default region name [None]: us-west-2 # 默认地区,选择和EC2,S3相同的地区。

  5. # 不记得的话,可以去控制台查。只需要详细到最后的2就可以了,后面的a,b,或者c的逻辑区域,不需要添加。

  6. Default output format [None]: # 默认输出格式。也就是我们每运行一条命令,它输出消息的格式。

  7. # 这里我使用了默认的None,感兴趣的朋友可以查查资料学习各种格式的区别。

注意在配置地区的时候,详细程度只需要到地理位置就行了,比如“us-west-2”,EC2信息里面显示的,后面的a,b, 或者c,是逻辑区域,不需要详细到那一步。不然后面的命令会报错。

这样我们的验证信息就配置好了,可以开始再上传一个私有(Private)文件,然后下载到我们的服务器了。进入到S3的一个桶里面,上传一个文件,在权限设置那里,不要做任何更改,这样就是默认的私有文件。然后回到命令行开始下载私有文件。

  1. roden@ip-172-31-2-87:~/download$ ls

  2. s3_test.txt

  3. roden@ip-172-31-2-87:~/download$ aws s3 cp s3://tutorial-roden/s3_private.txt .

  4. download: s3://tutorial-roden/s3_private.txt to ./s3_private.txt

  5. roden@ip-172-31-2-87:~/download$ ls

  6. s3_private.txt  s3_test.txt

  7. # 可以看到成功下载了文件

下载文件的那个命令, aws s3 cp就是aws工具箱中的s3小工具箱中的cp这个工具,也就是copy的简写。后面跟随的是S3远程路径 s3://tutorial-roden/s3_private.txt和服务器里面的本地路径 .,也就是当前文件夹。注意私有文件的S3路径表示方法“s3://桶的名字/(路径/)文件名”。(这里说明一下“本地”这个概念。它是相对的。当我们从家里的电脑登录到EC2服务器时,我们把家里的电脑叫做本地电脑,把服务器叫做远程服务器;当我们从S3上面下载文件到服务器时,我们把S3叫做远程资源库,把EC2里面的那个命令行叫做本地。)

从EC2传输文件到S3

当我们成功下载了私有文件之后,上传就比较简单了。只需要把后面两个路径的顺序调换一下,从本地到S3。

  1. roden@ip-172-31-2-87:~/download$ echo 1234 > upload_test.txt # 临时创建了一个新文件

  2. roden@ip-172-31-2-87:~/download$ ls

  3. s3_private.txt  s3_test.txt  upload_test.txt

  4. roden@ip-172-31-2-87:~/download$ aws s3 cp upload_test.txt s3://tutorial-roden/

  5. # 上传文件,注意两个路径的先后

  6. upload: ./upload_test.txt to s3://tutorial-roden/upload_test.txt

  7. roden@ip-172-31-2-87:~/download$ # 上传成功

推荐阅读

  1. 亚马逊云教程4

  2. 使 Amazon EBS 卷可用,亚马逊官方说明书,英文,中文。

  3. 开始设置 AWS Command Line Interface,亚马逊官方说明书,英文,中文。

  4. 配置 AWS Command Line Interface,亚马逊官方说明书,英文,中文。

  5. Amazon S3 和 Amazon EC2,亚马逊官方说明书,英文,中文。


集锦卡

  1. 上传单个文件到服务器并改名 scp test_folder/local_test_file.txt roden@35.160.40.187:new_upload.txt

  2. 上传整个文件夹 scp -r test_folder roden@35.160.40.187:target_folder/

  3. 下载文件 scp roden@35.160.40.187:file.txt .

  4. 下载文件夹 scp -r roden@35.160.40.187:target_folder .

  5. 快速输入命令,”tab“键补齐,使用”↑“, ”↓“ , history,"Control A"会把光标移动到命令行行首,"Control E"会移动到行尾。”Option ←“ 或者”Option →“可以左右移动一个单词,Win里面是”alt ←“。

  6. 扩大存储时,创建卷注意选择和EC2相同的地区以及逻辑区域。

  7. lsblk查看卷信息, sudo mkfs -t ext4 /dev/xvdf格式化新卷, sudo mount /dev/xvdf disk_1/挂载新卷。 sudo chown roden:roden disk_1/更改文件夹所属用户和用户组

  8. S3的使用。下载公有文件 wget https://s3-us-west-2.amazonaws.com/tutorial-roden/s3_test.txt

  9. 在AWS IAM控制台创建新用户和用户验证口令。

  10. 安装 awssudo apt install awscli;配置, aws configure

  11. 从S3下载私有文件, aws s3 cp s3://tutorial-roden/s3_private.txt .

  12. 上传文件到S3, aws s3 cp upload_test.txt s3://tutorial-roden/

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SVN快速入门1——SVN的安装及常用命令 - live and learn - Blog...
在Linux命令行下令人惊叹的惊叹号(!)
在命令行下实验FTP的PASV传输模式
建一个别人删不掉.也打不开的文件夹!
QQ密技68招(2)
简述TFTP简单文件传输协议实现过程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服