我有一個基于 Google Cloud Platform 構建的 Django 項目。我們使用的是 Django 的身份驗證系統,并且大多數(幾乎所有)用戶都沒有在 GCP 項目中設置憑據,因此所有文件身份驗證都需要基于 Django 而不是 GCP。我們用于文件存儲的后端配置非?;A,并且文件已按預期成功上傳到GCS:DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'GS_BUCKET_NAME = 'my-bucket'生成的文件URL格式為(再次如預期的那樣):https://storage.googleapis.com/my-bucket/my-document.txt問題是這個存儲桶不能公開讀取,因為文件具有基于 Django 權限系統中設置的規則的訪問控制,每個用戶都不同。如何讓Django提供文件而不是由GCS提供文件?想到的一個想法是讓視圖從 GCS 加載文件并將它們傳遞給請求的客戶端,但我懷疑這不會很好地處理大文件,因為我需要將整個文件加載到本地內存(壞)或以塊的形式加載文件并將它們以這些塊的形式寫入響應流,但不知道這是否可以在 Django 中完成。
1 回答

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
如果您的應用程序決定了對文件的訪問(通過 Django 的身份驗證系統),那么您必須執行您所描述的傳遞方法。
如果文件很大,您可以流式傳輸響應,而不是一次加載并發送整個響應-請參見django.http.StreamingHttpResponse
。
添加回答
舉報
0/150
提交
取消