簡體   English   中英

Django 存儲 [文件上傳到 AWS S3]

[英]Django Storages [file upload to AWS S3]

我正在使用 django 存儲庫將我的文件上傳到 s3。 我想了解這個文件上傳是如何工作的,文件是直接上傳到 s3 文件夾還是上傳到我的服務器然后轉到 s3?

文件上傳如何在 django 存儲中工作。

如果我上傳多個文件,它們會使用我服務器的帶寬嗎?它們會直接上傳到 s3 並且不會降低我服務器的速度。

謝謝

Django-storage 使用boto3進行上傳,可以在其源代碼中看到

obj.upload_fileobj(content, ExtraArgs=params)

這是boto3中的upload_fileobj方法:

類似 object 的文件上傳到此存儲桶。 類文件 object 必須是二進制模式。 這是一種托管傳輸,如有必要,它將在多個線程中執行分段上傳。

查看Django-storage中的save方法,它未來會解釋:

將新內容保存到名稱指定的文件中。 內容應該是適當的文件 object 或任何 Python文件,如 object ,准備好從頭開始閱讀。

因此,要回答您的問題,文件必須首先通過您的服務器 go 以便您可以為其創建file-like object 它不一定要存儲在硬盤上,但文件數據可以在 memory 中。 另外我認為它也不必完全存儲,應該可以在將其上傳到您的應用程序時對其進行蒸汽處理,但我不確定這是否適用於 django。

綜上所述,所有上傳的文件必須通過您的服務器 go 占用它的處理能力和帶寬。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM