如何在AWS s3和AWS ec2之间传输文件

我正在使用AWS ec2实例。 在这个例子中,我产生了一些文件。 这些操作是由用户数据完成的。

现在我想通过在用户数据本身编写代码来将这些文件存储在s3上。

  • 那么如何将这些文件存储在s3上呢?
  • 有任何教程呢?

使用最新的AWS CLI( http://aws.amazon.com/cli/ ),可以使用以下命令将文件从您的Ec2实例或本地计算机复制到S3存储。

aws s3 cp myfolder s3://mybucket/myfolder --recursive 

然后你会得到像这样的东西:

 upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt 

如果这是您首次使用aws CLI工具,那么您需要运行:

aws configure

这将要求您input您的访问密钥和秘密,并指定一个默认区域。

有很多方法可以将文件发送到S3。 我在下面列出了他们的安装和相关文件。

PHP实现的一个例子:

 <?php // Simple PUT: if (S3::putObject(S3::inputFile($file), $bucket, $uri, S3::ACL_PRIVATE)) { echo "File uploaded."; } else { echo "Failed to upload file."; } ?> 

s3cmd的一个例子:

 s3cmd put my.file s3://bucket-url/my.file 

编辑

值得一提的另一个选项是AWS CLI http://aws.amazon.com/cli/这是广泛可用的,例如它已经包含在AmazonLinux中,可以通过Python下载(它安装在许多系统上,包括Linux和Windows); 。

http://docs.aws.amazon.com/cli/latest/reference/s3/index.html

可用命令,cp ls mb mv rb rm同步网站

http://docs.aws.amazon.com/cli/latest/reference/s3api/index.html与S3交互;

我使用s3cmd从我的ec2实例存储每晚导出的数据库备份文件。 在s3cmd的configuration完成后,你可以在他们的站点上阅读,然后运行一个命令:

s3cmd put ./myfile s3://mybucket

安装s3cmd软件包为:

 yum install s3cmd 

要么

 sudo apt-get install s3cmd 

取决于你的操作系统。 然后用这个复制数据:

 s3cmd get s3://tecadmin/file.txt 

也可以列出文件。

更多detils看到这一点

使用s3cmd

 s3cmd get s3://AWS_S3_Bucket/dir/file 

看看如何在这里安装s3cmd:

这适用于我…

所有将s3挂载为伪文件系统的尝试都是有问题的。 这是一个对象存储,而不是一个块设备。 如果你必须装载它,因为你有遗留的代码必须有本地文件path,尝试愚蠢。 它比s3fs快50倍。 https://github.com/kahing/goofys

这些天s3cmd在牙齿上有点长。 AWS cli是最近的一个更好的select。 语法稍微不方便,但它是一个你需要保持的less一个工具。

如果你可以坚持http访问。 从长远来看,这会让你的生活更轻松。