2014-09-28 20 views
0

我已經經歷了一個奇怪的行爲,在我的heroku rails應用程序中,我已經打了兩天,仍然無法理解問題所在。heroku rails應用程序手機瀏覽器文件上傳超時

我有一個heroku rails應用程序,具有允許用戶上傳照片的功能。

從桌面瀏覽器上傳時,照片上傳功能正常工作。

但是,從我的iphone 5 safari瀏覽器上傳時,上傳功能不起作用。當我試圖從我的手機瀏覽器上傳,客戶端將大約50秒左右後顯示application error頁面,Heroku的服務器日誌會顯示以下行:

2014-09-28T20:20:11.125791+00:00 heroku[router]: at=error code=H15 desc="Idle connection" method=POST path="/kitchens/1/photos" host=myapp.herokuapp.com request_id=2844a843-fff7-4c7e-aea3-fd6d393339ae fwd="24.23.199.22" dyno=web.1 connect=1ms service=55000ms status=503 bytes=0 

我有一個小小的46KB進行測試.jpg文件,在wifi連接上。相同的文件,從桌面鉻瀏覽器上傳相同的WiFi連接工作正常。 46KB是一個非常小的文件,這使我相信這不是文件大小的問題。

在heroku上,我有兩個dynos,一個網絡動態處理器來處理正常請求,一個工人動態處理器在後臺處理照片。

我將所有的照片文件存儲在亞馬遜S3上。

我使用以下工具和光學處理,寶石和上傳:

Amazon S3存儲 carrierwave處理 minimagiccarrierwave carrierwave_backgrounder從Web服務器手頭寬裕的處理作業後臺工作 sidekiq爲後臺工作人員 redis-to-go for sidekiq

我很疑惑,爲什麼相同的請求,從桌面瀏覽器發送相同的文件w從移動瀏覽器發送的orks失敗。我的理解是,無論是從桌面還是移動瀏覽器發送,HTTP請求都應該是相同的。

它與瀏覽器有關嗎?上傳功能適用於桌面Chrome和Safari瀏覽器,但在我的iPhone 5 Safari瀏覽器上失敗。

我真的很感謝在這個問題上的任何幫助!

在此先感謝。

回答

0

這可能是一個DNS問題。 我嘗試了相同的過程,在Chrome + iPhone6上一切正常,但Safari1 + iPhone6上的H15失敗。 這兩種情況在計算機上運行良好(os maverick)。

這是一個類似的問題,試一試對他有用。 H15 on Heroku SSE request

我的dns設置正確我猜這並沒有解決我的問題,但也許你會更幸運。

編輯:iOS8上的錯誤 http://blog.uploadcare.com/post/97884147203/you-cannot-upload-files-to-a-server-using-mobile-safari

您可以安裝的iOS 8.0。2解決問題或/並將您的服務器的IP分配爲表單動作以確保響應。

+0

謝謝!我忘記了在這裏更新,這確實是8.0上Safari的一個bug,並且已經修復! – Stephens 2014-10-07 01:22:58

0

更新

這顯然是iOS 8.0上Safari的一個bug。

我與Mitmproxy調試這一點,並寫了一個博客帖子大約 Here

相關問題