亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django - 較大的文件無法上傳到 heroku

Django - 較大的文件無法上傳到 heroku

慕娘9325324 2023-04-25 17:48:12
我在向托管在 heroku 上的 django 應用程序發帖時遇到問題。我有一個提交 3 張圖像的表單,當我使用大約 100kb 的較小圖像時一切正常,但是當我使用 ~3MB 的較大圖像時,上傳失敗并在 heroku 日志中顯示為錯誤at=error code=H13 desc="Connection closed without response" method=POST path="/"在 django 中,我只是保存圖像然后通過電子郵件發送它們,如下所示,其中 formdata 保存圖像。希望這個片段足夠了:for each in form_data:    pic = form_data[each]    if pic:        filename = os.path.join(self.location,f"{i} - {pic.name}")        imgbytes = pic.read()        with open(filename, 'wb+') as destination:            destination.write(imgbytes)        i+=1        fileholder.append(filename)email = EmailMessage(        subject = 'Hello',        body = 'Body goes here',        from_email = '[email protected]',        to = ['[email protected]'],        )for each in fileholder:    email.attach_file(each)email.attach_file(newpath)email.send()是什么原因造成的,我如何確保成功上傳任何尺寸的圖像?
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

好的,所以我發現 heroku 上的所有請求都會在 30 秒后超時,這就是我的情況。上傳時間比這更長,我的解決方案是處理上傳客戶端并直接上傳到 S3。


查看完整回答
反對 回復 2023-04-25
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

Django 有一個設置DATA_UPLOAD_MAX_MEMORY_SIZE防止上傳大于 2.5MB 的文件(默認值:2621440(即 2.5 MB))并引發 SuspiciousOperation (RequestDataTooBig) Exception

嘗試在您的 settings.py 中更改它


查看完整回答
反對 回復 2023-04-25
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

據我所知,幾乎所有網絡框架都會限制一次請求中的數據大小。比如DjangoTornadoSpring。

而且它不安全,如果不限制一個請求的最大大小。

正如 MSR974 所說,改變DATA_UPLOAD_MAX_MEMORY_SIZE它是一種改變關于一個請求的最大大小的設置的方法。但是在你的問題中:確保成功上傳任何圖像大小。關鍵詞是any size

嘗試分段上傳?

也就是將一個文件拆分成兩個或多個文件,上傳到后端后按順序合并。(希望我解釋清楚了)


查看完整回答
反對 回復 2023-04-25
  • 3 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號