我正在使用NodeJS和AWS開發應用程序服務器。使用ELB和S3在EC2上進行文件上傳API
我正在使用ELB和EC2設置服務器環境。
我正在使用ELB作爲負載均衡器並將多個應用程序服務器EC2實例附加到它。
一個EC2實例用於MongoDB。
我的問題是關於請求,包括文件上傳。
我想上傳的文件不應該在應用服務器(EC2實例)中,所以我會嘗試保存上傳的文件到S3中,並允許應用服務器(EC2實例)訪問它。
粗略的解決方案是,如果應用程序服務器接受來自客戶端的文件,請將其移至S3並刪除應用程序服務器上的文件。
但是它會導致一些性能損失,我不覺得這是一個乾淨的方式。
這是最好的方式嗎?或者有另一種解決方法。
我認爲這是上傳文件到S3的最好方法。
但文件與其他數據一起上傳。 (例如,配置文件上傳 - 名稱:字符串,年齡:號碼,profileImage:文件)
我需要處理應用服務器上的其他數據,所以客戶端不應直接上傳到S3。
有沒有更好的主意?
請保存我。
P.S:請讓我知道你是否因爲我不是本地人而無法理解我的表情。如果是這樣,我會盡我所能爲它添加一些解釋!
謝謝@chris。我試圖用你的答案解決問題,但還有另外一個問題。我成功地獲得了預先簽名的url,並且可以直接從瀏覽器上傳圖片到S3(我正在使用post-man進行測試:google-chrome擴展)。但是每個上傳的圖像文件都被破壞了。該文件已上傳,其字節與原來的相同(我沒有嚴格檢查)。但是在下載完圖像文件並執行後,我得到了消息 - 文件無法打開。它是破損或無法識別的文件格式。 (我上傳文件PNG和JPEG文件)。任何解決方案嗎?我爲此奮鬥了2天。 – 2014-12-09 06:01:33