0

Django有可能將圖像文件存儲在外部對象存儲的不同存儲桶/容器中OpenStack Swift?Django中的多個存儲容器

我有一個與創建正確的方式來通過REST服務請求上傳圖像文件相關的問題。用戶可以通過第一個終端POST'Task'實例,包含名稱,說明,owner_id等等。他還能夠通過另一個終端發佈圖像,這個終端與Task有很多關係。

在我的情況下(服務器已經存在,被設置等),圖像應該存儲在獨特的容器/桶如下所示:owner_id_task_id。與此相關的是,用戶可以上傳具有相同名稱和擴展名但內容不同的文件。
另一部分也將發送到OpenStack Swift中的相同容器中的一個來自Celery worker任務的文件(一些基於上傳文件的處理)。

我的目標是在運行時容器結構中實現動態創建/覆蓋,用於存儲原始圖像以及後期處理的圖像。

任何想法如何解決這個問題?

感謝您的幫助!

+0

它不僅可能,但建議。例如,Heroku建議用戶使用s3作爲靜態文件和媒體文件https://devcenter.heroku.com/articles/s3 django解決方案將使用「whitenoise」,但其更多用於靜態文件,而不是縮放更大文件。 – hansTheFranz

+0

@hansTheFranz更具體:我想上傳OpenStack Swift的圖片到獨特的容器,名爲'{1} _ {2}'。format(user_id,task_id)。我從request請求中獲取的user_id,來自REST請求的task_id。因此容器應該命名爲例如'12_05'或'23_111'。是否有可能做這樣的事情? – sorryMike

+0

我不是OpenStack專家我不能告訴你他們是如何管理容器的名稱策略的,但總的來說,你應該可以像你想要的那樣調用它們。但似乎你想爲每個用戶創建一個容器?我不認爲這是OpenStack的最佳做法。請在問題中告訴我們你想做什麼以及爲什麼。也許你正在尋找一種解決方案,通過其他途徑可以更輕鬆地實現。 – hansTheFranz

回答

1

是的。這個有可能。您可以使用FileField.storage來配置在各個模型字段中使用哪個存儲。

+0

我不確定它是否是我的問題的解決方案。請檢查編輯後的問題。 – sorryMike

+0

你沒有要求解決方案。你問是否有可能。如果你有特定的問題,如果你問一個特定的問題,你更有可能得到答案。 –

+0

是的,你說得對。首先我想知道這個問題是否可以在Django中管理:)但是如果你知道任何解決方案如何解決我的問題,請隨時與我分享:) – sorryMike