【发布时间】:2015-04-08 09:12:19
【问题描述】:
在我的亚马逊 EC2 实例中,我有一个名为 uploads 的文件夹。在这个文件夹中,我有 1000 张图像。现在我想将所有图像复制到我的新 S3 存储桶中。我该怎么做?
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-s3
在我的亚马逊 EC2 实例中,我有一个名为 uploads 的文件夹。在这个文件夹中,我有 1000 张图像。现在我想将所有图像复制到我的新 S3 存储桶中。我该怎么做?
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-s3
使用s3cmd
s3cmd get s3://AWS_S3_Bucket/dir/file
如果您使用的是 linux,请在命令行上运行:
sudo apt-get install s3cmd
或 Centos,Fedore。
yum install s3cmd
使用示例:
s3cmd put my.file s3://pactsRamun/folderExample/fileExample
就像 @tedder42 在 cmets 中所说,不要使用 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
【讨论】:
sync 而不是cp。
put 连续以[Errno 32] Broken pipe 失败并不断尝试以较低的传输率并最终给出向上。在某处,我读到问题是由于文件大小造成的(我尝试复制一个中等大小的文件〜7Gib)。与往常一样,awscli 能够处理这个问题。希望有人在遇到此错误时发现这很有用。
aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
或者,您可以对一个选定的文件使用以下命令。
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
【讨论】:
要从 EC2 复制到 S3,请在 EC2 的命令行中使用以下代码。
首先,您必须为您的 EC2 实例提供“具有完全 s3 访问权限的 IAM 角色”。
aws s3 cp Your_Ec2_Folder s3://Your_S3_bucket/Your_folder --recursive
【讨论】:
还要注意 aws cli 与 s3 同步,它是多线程的,一次上传文件的多个部分。但是,目前无法配置线程数。
【讨论】:
aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2
【讨论】:
这可以很简单地完成。请按照以下步骤操作:
aws s3 cp 文件位置/文件名 s3://bucketname
因此您无需安装或做任何额外的工作。
请注意...文件位置是指本地地址。 bucketname 是您的存储桶的名称。 另请注意:如果您的实例和 S3 存储桶位于同一账户中,则可以这样做。 干杯。
【讨论】:
我们确实有可供测试的试运行功能。
【讨论】: