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

Pac*_*mun 24 amazon-s3 amazon-ec2 amazon-web-services

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

Eth*_*aan 30

第一个选项sm3cmd

使用 s3cmd

s3cmd get s3://AWS_S3_Bucket/dir/file
Run Code Online (Sandbox Code Playgroud)

看看这个s3cmd文档

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

sudo apt-get install s3cmd
Run Code Online (Sandbox Code Playgroud)

或Centos,Fedore.

yum install s3cmd
Run Code Online (Sandbox Code Playgroud)

用法示例:

s3cmd put my.file s3://pactsRamun/folderExample/fileExample
Run Code Online (Sandbox Code Playgroud)

第二选择

使用 亚马逊的Cli

更新

喜欢@ tedder42在评论中说,而不是使用cp,使用sync.

看一下以下语法:

aws s3 sync <source> <target> [--options]
Run Code Online (Sandbox Code Playgroud)

例:

aws s3 sync . s3://my-bucket/MyFolder
Run Code Online (Sandbox Code Playgroud)

使用AWS命令行界面使用高级s3命令管理对象时提供的更多信息和示例


zaf*_*rin 6

aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
Run Code Online (Sandbox Code Playgroud)
  • 重要提示:这会将命名目录中的每个项目复制到您选择的s3存储桶文件夹中。这不会复制您的目录整体。

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

aws s3 sync your-dir-name/file-name s3://your-s3-bucket-name/folder-name/file-name
Run Code Online (Sandbox Code Playgroud)

或者您可以使用通配符将其全部选中。请注意,这将复制整个目录,并生成元数据并将其保存到s3 bucket文件夹。

aws s3 sync . s3://your-s3-bucket-name/folder-name
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

aws s3 cp Your_Ec2_Folder s3://Your_S3_bucket/Your_folder --recursive
Run Code Online (Sandbox Code Playgroud)