2015-10-13 25 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文件中的媒體項目的文件名的唯一標識符。項目的數量可以在一代之間變化,所以唯一的方法就是每次從頭開始。這是一個令人難以置信的浪費過程,但這就是這些上傳如何工作,我們必須在 –