2017-07-04 47 views
1

我正在使用WhiteNoiseZappa用zappa whitenoise,推動靜態文件到S3?

扎帕建議保持規模的項目下來,大小:

...吃進你的應用程序功能的存儲空間(source

超過50MB項目

你的確需要設置slim_handler = true,這有輕微的性能損失。

WhiteNoise建議讓您的服務器上有靜態文件,例如Amazon Cloudfront可以訪問並緩存這些文件。

這裏的cache-22是創建的許多版本的壓縮的WhiteNoise靜態文件可能導致靜態包大於100MB(在我的情況下)。

我不知道如何在這裏繼續。選項有:

  • 白噪聲的靜態內容手動推到一個S3桶和具有的Cloudfront有以此爲原點,不上傳100MB亞馬遜LAMBDA。
  • 看看我是否可以讓Zappa將靜態內容捆綁到S3(並從應用程序本身中移除靜態內容)。當Zappa上傳一個Zip時,或許這是一個更快的選擇。

有什麼想法?謝謝。

+2

這是一個很好的問題。部分問題是Django在STATIC_ROOT中保留了散列和非散列版本的文件。最重要的是,您擁有STATICFILES_DIRS中的原始文件,因此您至少有三份副本以及壓縮版本。我將研究在即將發佈的WhiteNoise發行版中緩解這一問題的方法。通過在Zappa中定義一個ZIP回調來完成一些後期打包清理也是可能的,但我沒有詳細討論過這一點。 –

回答

1

根據Zappa-django-guide,我轉移到使用django-storage(tutorial setting up with zappa)。

雖然我設法讓WhiteNoise與Zappa合作,但我們的應用程序非常緩慢。 Django存儲解決方案是zippy!

+1

很高興你找到了一些可行的方法。你是否在CDN後面運行WhiteNoise(例如cloudfront或cloudflare)?這是生產設置的推薦方式,應該給你比S3更好的性能。 –

+0

是的。通過whiteNoise在Lambda頂部的Cloudfront。我懷疑用正確的緩存設置,Whitenoise會非常好用。儘管我沒有做到這一點(出於某種原因,Cloudfront總是將我的靜態內容放入Lambda中)。 – andyw

相關問題