有没有一种方法可以让我的网站的用户通过Flash/PHP/other服务从AmazonS3下载大量的图像文件?

有没有一种方法可以让我的网站的用户通过Flash/PHP/other服务从AmazonS3下载大量的图像文件?,php,flash,zip,amazon-s3,download,Php,Flash,Zip,Amazon S3,Download,我的网站允许用户上传我存储在亚马逊S3上的照片。我存储原始上传以及优化图像和缩略图。我想让用户能够在订阅到期时导出其所有原始版本。因此,我认为会出现以下问题 可能是大量数据(可能在10GB左右) 如何管理下载过程-例如,确保下载过程中断,从何处重新开始,如何验证文件的成功下载 应该对单个文件执行此操作,或者尝试压缩文件并作为一个文件或一系列较小的压缩文件下载 有什么工具我可以用吗?我见过Fzip,它是一个用于处理zip文件的Actionscript库。我有一个EC2实例正在运行,它可以处理文件上

我的网站允许用户上传我存储在亚马逊S3上的照片。我存储原始上传以及优化图像和缩略图。我想让用户能够在订阅到期时导出其所有原始版本。因此,我认为会出现以下问题

  • 可能是大量数据(可能在10GB左右)
  • 如何管理下载过程-例如,确保下载过程中断,从何处重新开始,如何验证文件的成功下载
  • 应该对单个文件执行此操作,或者尝试压缩文件并作为一个文件或一系列较小的压缩文件下载
  • 有什么工具我可以用吗?我见过Fzip,它是一个用于处理zip文件的Actionscript库。我有一个EC2实例正在运行,它可以处理文件上传,因此也可以使用它进行下载-例如从S3将文件复制到EC2,压缩文件,然后通过Flash downloader将其下载到用户,使用Fzip将压缩文件夹解压缩到用户的硬盘

    是否有人遇到过类似的服务/解决方案

    所有意见均获赞赏
    谢谢

    我没有直接处理这个问题,但我最初的想法是:

  • Flash或者jQuery可以用于一个自主开发的解决方案,让客户机发回它收到的信息,并将这些信息存储在数据库日志中。你也可以考虑使用BitTorrent作为调解人,你的用户可以下载一个免费的激流客户端,你可以研究服务器端激流服务(也许RivetTracker或PHPBTTracker)。我不确定这些文件的详细程度,但至少,因为您可以确定您正在与单个用户打交道,如果他们成为播种机,您可以擦除旧文件并开始下一个文件

  • 将大于2GB的文件分为2GB块,以容纳FAT32驱动器无法处理>~4GB文件的用户。如果服务器上的空间有限,则分解为1GB,通过数据库记录将基准测试保存在从S3压缩的内容上

  • Fzip很酷,但我认为它更适合客户端归档。PHP有ZIP和RAR库(),您可以使用它们来汇总服务器端的文件。我认为,您找到的任何解决方案都需要您通过在数据库中记录谁拥有什么和下载密钥来自行管理安全性。不这样做可能会导致人们将您的资源作为文件传递系统来使用


    祝你好运

    我没有直接处理这个问题,但我最初的想法是:

  • Flash或者jQuery可以用于一个自主开发的解决方案,让客户机发回它收到的信息,并将这些信息存储在数据库日志中。你也可以考虑使用BitTorrent作为调解人,你的用户可以下载一个免费的激流客户端,你可以研究服务器端激流服务(也许RivetTracker或PHPBTTracker)。我不确定这些文件的详细程度,但至少,因为您可以确定您正在与单个用户打交道,如果他们成为播种机,您可以擦除旧文件并开始下一个文件

  • 将大于2GB的文件分为2GB块,以容纳FAT32驱动器无法处理>~4GB文件的用户。如果服务器上的空间有限,则分解为1GB,通过数据库记录将基准测试保存在从S3压缩的内容上

  • Fzip很酷,但我认为它更适合客户端归档。PHP有ZIP和RAR库(),您可以使用它们来汇总服务器端的文件。我认为,您找到的任何解决方案都需要您通过在数据库中记录谁拥有什么和下载密钥来自行管理安全性。不这样做可能会导致人们将您的资源作为文件传递系统来使用


    祝你好运

    谢谢,这里有一些很棒的建议。是的,我同意我的想法是,我必须管理我数据库中的who信息,这可能与任何事情一样简单,因为我已经在一个表中有了所有原始文件的详细信息,所以可以说,这只是一个勾选它们的例子。我认为Flash将收到的信息发送回去会很好。谢谢谢谢,这里有一些很棒的建议。是的,我同意我的想法是,我必须管理我数据库中的who信息,这可能与任何事情一样简单,因为我已经在一个表中有了所有原始文件的详细信息,所以可以说,这只是一个勾选它们的例子。我认为Flash将收到的信息发送回去会很好。谢谢