0

我正在将文件从一台远程服务器迁移到 S3。大约有 10k 个文件(所有文件都可以通过远程服务器的 http URL 访问)。总大小约为 300GB(单个文件不超过 1GB)。我试图找出进行这种迁移的最有效方法。到目前为止,我有一个 EC2 实例并安装了 S3CMD;PHP-SDK,我也有一个包含所有 URL 的文本文件。我能够毫无问题地将文件从 EC2 移动到 S3。但问题是,如果我在 EC2 中下载所有内容,我的存储空间就会用完。有没有一种方法可以让我在 EC2 中下载文件(也许查看 txt 文件)将其移动到 S3(使用 S3CMD),然后在我转到下一个文件之前从 EC2 中删除文件。

理想情况下,我希望将所有内容从远程位置直接下载到 S3,但我认为这是不可能的,除非这里有人说是这样。

在此先感谢您的帮助。

4

1 回答 1

1

我看不到您当前的 ec2 实例正在运行什么操作系统。但如果是 linux 你可以使用 S3fs
https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon

这将允许您像本地驱动器/文件夹一样安装您的存储桶。然后你可以简单地将文件移动到那里。它会将它们上传到后台的存储桶中。我会分批移动它们,以便于跟踪。上传后移动它们会将它们从本地文件系统中删除。您也可以通过这种方式将它们复制到存储桶中。完成后,您可以进行简单的比较以确保两个文件夹中存在相同的文件,然后您就完成了。

为清楚起见,根据评论中提出的问题进行编辑

在远程机器上,使用您的 AWS 凭证设置 Fuse。
挂载您的 S3 存储桶。它看起来像 Ubuntu 中的本地文件夹结构。
假设您当前的文件在
/var/myfiles/folder1其中并将/var/myfiles/folder2
您的 S3 存储桶安装到/mybucket
mv /var/myfiles/folder1 /mybucket/folder1

同样,我会分批移动它们并确保文件夹匹配,然后再继续。

结束编辑

如果您的 EC2 实例是 Windows,那么还有其他方法可以将 S3 存储桶挂载为本地驱动器。然后可以进行相同的过程。

于 2015-05-28T18:46:37.683 回答