如何使用命令行将文件从amazon ec2移动到s3存储桶

时间:2015-02-08 15:59:21

标签: amazon-web-services amazon-ec2 amazon-s3

在我的amazon EC2实例中,我有一个名为uploads的文件夹。在这个文件夹中我有1000张图片。现在我想将所有图像复制到我的新S3存储桶中。我怎么能这样做?

7 个答案:

答案 0 :(得分:25)

第一个选项sm3cmd

使用s3cmd

s3cmd get s3://AWS_S3_Bucket/dir/file

查看this s3cmd documentation

如果您使用的是Linux,请在命令行上运行:

sudo apt-get install s3cmd

或Centos,Fedore。

yum install s3cmd

使用示例:

s3cmd put my.file s3://pactsRamun/folderExample/fileExample

第二选项

使用Cli from amazon

更新

就像@ tedder42在评论中说的那样,使用 cp 而不是sync

看看以下语法:

aws s3 sync <source> <target> [--options]

示例:

aws s3 sync . s3://my-bucket/MyFolder

Managing Objects Using High-Level s3 Commands with the AWS Command Line Interface

提供了更多信息和示例

答案 1 :(得分:5)

aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
  • Importent:这会将您指定目录中的每个项目复制到您选择的s3存储桶文件夹中。这不会将您的目录整体复制。

或者,您可以对一个选定的文件使用以下命令。

aws s3 sync your-dir-name/file-name s3://your-s3-bucket-name/folder-name/file-name

或者您可以使用狂野角色来选择所有。请注意,这将复制整个目录,并生成元数据并将其保存到s3存储桶文件夹中。

aws s3 sync . s3://your-s3-bucket-name/folder-name

How to connect to S3 Bucket from an EC2 Instance – AWS Help

上查看我的整篇博文

答案 2 :(得分:2)

另请注意,在aws cli与s3同步时,它是多线程的,并且一次上传文件的多个部分。但是,线程数目此不可配置。

答案 3 :(得分:1)

aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2

答案 4 :(得分:1)

要从EC2复制到S3,请在EC2的命令行中使用以下代码。

首先,您必须为EC2实例赋予“具有s3完全访问权限的IAM角色”。

aws s3 cp Your_Ec2_Folder s3://Your_S3_bucket/Your_folder --recursive

答案 5 :(得分:0)

我们确实有一个dryrun功能可用于测试。

  • 首先,我会为ec2-instance分配一个能够阅读的角色 写信给S3
  • SSH进入实例并执行以下
  • vi tmp1.txt
  • aws s3 mv ./ s3://bucketname-bucketurl.com/ --dryrun
  • 如果这样可行,那么您所要做的就是创建一个脚本 将此文件夹中特定的所有文件上传到s3存储桶
  • 我已经在我的脚本中写了下面的命令来移动 从当前目录到存储桶/文件夹
  • 的文件超过2分钟
  • cd dir; ls。 -rt | xargs -I FILES找到FILES -maxdepth 1 -name '* .txt'-mmin +2 -exec aws s3 mv'{}'s3://bucketurl.com

答案 6 :(得分:0)

这可以非常简单地完成。请执行以下步骤:

  • 在控制台上打开AWS EC2。
  • 选择实例并导航至操作。
  • 选择实例设置,然后选择“附加/替换IAM角色”
  • 完成此操作后,连接到AWS实例,其余操作将通过以下CLI命令完成:

aws s3 cp文件位置/文件名s3:// bucketname

因此,您无需安装或进行任何额外的工作。

请注意...文件位置是指本地地址。而bucketname是您的存储桶的名称。 另请注意:如果您的实例和S3存储桶在同一帐户中,则可以这样做。 干杯。