2015-10-13 24 views
2

我们使用S3存储通过我们的应用程序上传的诸如图像的各种媒体文件,文档等。我们在房地产软件产业和交换存储在我们的系统属性门户网站数据的方式展开工作的门户之间的通用交换格式是Rightmove BLM数据馈送规范。这本质上是一个zip文件,其中包含分隔文本文件以及通过FTP发送到每个门户的任何关联媒体。然而,这个过程的一个瓶颈就是从S3下载媒体进行压缩。例如我们的系统上的一个单一的帐户可能在1000图像/文件区域内下载并准备拉上转移(每个文件都有针对特定门户(唯一的编号,序列号等特定格式来命名)但是下载1000张图像/文件从S3到通过PHP SDK同一区域的EC2服务器需要一定的时间(60+秒)。如果这样做了多个账户在同一时间,它把服务器上的负载相当。正在压缩100存储在S3

是否有从S3下载文件,使他们能够坦然和拉链的EC2实例的更好/更快的方式?

感谢。

+0

如果S3是瓶颈,你检查,看看你是外壳上足够多的分区?这可以通过您的命名方案影响您的[键](https://aws.amazon.com/blogs/aws/amazon-s3-performance-tips-tricks-seattle-hiring-event/)。 –

+0

你有没有试过在ec2上使用aws cli工具,看看它是否比php sdk执行得更快? – EdgeCaseBerg

+0

@ShawnMehan - 由于对象关键字的前3个部分总是相同,因此您可以在此处进行操作。有趣的是,看看平均的性能改进百分比可以改变这一点。 –

回答

0

选择之一就是为t o在添加文件时聚合zip。这意味着,不是一次全部压缩文件,而是使用Lambda函数在S3存储桶中添加或更新它们时将其添加到压缩文件中。然后,拉链可根据需要或多或少地获得。

+0

不幸的是,这是行不通的。如果我们的系统在单一帐户被配置为将数据上传到多个门户,这些门户网站都将有其必须被内置到每一个zip文件中的媒体项目的文件名的唯一标识符。项目的数量可以在一代之间变化,所以唯一的方法就是每次从头开始。这是一个令人难以置信的浪费过程,但这就是这些上传如何工作,我们必须在 –