从本地计算机将文件上载到AWS

时间:2013-08-11 06:41:46

标签: amazon-web-services amazon-ec2

如何使用scp命令将文件上传到aws服务器

  • 我在本地计算机的/Downloads中有.pem文件
  • 我正在尝试将文件复制到AWS服务器中的/images文件夹

    我可以使用什么命令?

谢谢,

6 个答案:

答案 0 :(得分:29)

您可以使用普通scp

scp -i ~/Downloads/file.pem local_image_file user@ec2_elastic_ip:/home/user/images/

您需要将弹性IP放入EC2实例,将端口22打开到EC2实例安全组中的本地计算机IP,并使用正确的用户(可以是ec2-user,admin或ubuntu(查看AMI文件))。

答案 1 :(得分:3)

有多种方法可以达到你想要的效果

  1. 使用s3cmd http://s3tools.org/s3cmd

  2. 或使用cyberduck http://cyberduck.ch/

  3. 或使用amazon Java API编写工具

答案 2 :(得分:3)

您可以尝试 kitten 实用程序,它是 boto3 的包装器。为此,您可以轻松地在 EC2 服务器或多台服务器上上传/下载文件和运行命令。

kitten put -i ~/.ssh/key.pem cat.jpg /tmp [SERVER NAME][SERVER IP]

其中服务器名称是例如 ubuntuec2-user

这会将cat.jpg文件上传到服务器的/tmp目录

答案 3 :(得分:2)

迭戈的答案有效..但是,如果你不知道你的弹性IP,那么你可以使用以下命令scp(检查参数的顺序)

  

scp -i 路径到您的标识符 .pem 要复制的文件 ubuntu @ public-IP:/ required-path < / em>的

仅供参考,此处ubuntu是您的AWS用户,public-IP有点像54.2xx.xxx.xxx,例如54.200.100.100等 (如果订单搞砸了:标识符之前的文件名,则会出现Permission denied (publickey).lost connection错误)

另外,请记住.pem文件的权限..应该是400或600.不公开。 希望它有所帮助!

答案 4 :(得分:0)

scp的另一种替代方式是rsync

rsync的一些好处

rsync cmd

rsync -ravze "ssh -i /home/your-user/your-key.pem "  --exclude '.env'  --exclude '.git/' /var/www/your-folder-to-upload/*  ubuntu@xx.xxx.xxx.xxx:/var/www/your-remote-folder

现在,如果你发现这个语法有点冗长,你可以使用aws-upload完成上述所有工作,但你只需要选项卡。

答案 5 :(得分:0)

这是从本地上传到远程的正确方式。

scp -i "zeus_aws.pem" ~/Downloads/retail_market_db-07-01-2021.sql ubuntu@ec2-3-108-200-27.us-east-2.compute.amazonaws.com:/var/www/

可能是更好的方法