9

我正在尝试创建一个 ftp 服务器(使用 windows/linux/mac - 不用担心),它将其存储作为 Amazon S3 存储。现在请注意,S3 本身不支持 FTP,因此这需要某种 hack 作为解决方案。

我研究了该主题并找到了各种解决方案,但我并不真正相信其中任何一个。他们是:

  1. 亚马逊 EC2 + TntDrive
  2. 使用中小企业
  3. 创建 EC2 实例并安装 FTP 服务器并将 S3 挂载为本地文件系统。

我试图在安全性和灵活性/流畅性方面找到最佳解决方案。您认为哪种解决方案最好,以及如何实现上述目标?

编辑 1:

我对以下解决方案非常感兴趣。这是我收集的内容:您可以将 EBS 卷附加到 EC2 实例并在该实例上运行 FTP 服务器。将 FTP 服务器指向附加的 EBS 卷,然后通过 FTP 上传您的文件 - 它将直接写入 EBS 卷。您可能希望使用可以支持恢复中断传输的 FTP 服务器和客户端,例如 FileZilla。当我假设以上所有内容时,我是否正确?

也有人可以逐步说明如何实现这一目标吗?

4

3 回答 3

9

答案真的取决于。

首先,让我说 FTP 是一个糟糕且不安全的协议。在走这条路之前,请确保您有充分的理由。有很多用户友好的 S3 工具。

其次,请注意,这些解决方案都不会像 S3 那样扩展。每个解决方案对它可以支持的文件数量、文件的大小以及频繁更新文件会发生什么(即它可能保存错误的版本)都有任意限制。S3 文件系统起初看起来很整洁,但是当它们出现问题时,它们很难排除故障(它们只能返回通用文件系统错误消息)并且更难修复。

一些想法:

  • 如果您真的只是想要云备份,请考虑使用 EBS 而不是 S3。将 EBS 驱动器连接到 EC2 盒子,或在本地盒子上运行Storage Gateway 。

  • 根据读/写模式和延迟,以及文件的大小等,您可能会使用类似的东西s3sync。让它下载您的所有文件,然后定期与 S3 进行双向重新同步以获取任何新文件或删除任何已在 S3 中删除的文件。

  • 如果您只需要支持上传,只需有一个 cron 作业,定期将新文件上传到 S3,然后删除它们。

于 2013-06-15T18:42:35.527 回答
5

您可以尝试什么.. 使用s3fs,将您的 s3 存储桶挂载到您的 Amazon EC2 实例中的目录 - 使用一些:sudo s3fs -o allow_other,uid=12345,gid=12345 my-bucket my-ftp-directory/

然后设置 vsftpd 或任何其他 FTP 程序,创建一个用户并将其主目录分配为my-ftp-directory. 将此用户chroot到该目录,然后尝试使用用户凭据和EC2实例的ip进行FTP ..我还没有尝试过,但是在使用这种技术将存储桶安装到我在Drupal中的公共文件目录之后,它是工作正常!

于 2013-12-10T16:06:56.223 回答
2

您还可以使用:FTP 2 云

虽然 FTP 2 Cloud 处于测试阶段:

it's free.
there are no copy limits.
each account has 100MB storage space.
supports FTP to Amazon S3 copy.
supports FTP to Rackspace copy.
you use at your own risk.
it needs your love to get the word out.
于 2014-07-30T23:17:27.007 回答