Djangoでは、外部オブジェクトストレージの異なるバケット/コンテナにイメージファイルを格納することは可能ですか?OpenStack Swift?Djangoの複数のストレージコンテナ
RESTサービスリクエストを通じて画像ファイルをアップロードするための適切な方法の作成に関連する問題があります。ユーザーは、名前、説明、所有者IDなどを含む最初のエンドポイントを介して 'Task'インスタンスをPOSTすることができます。Taskには、他のエンドポイントを介して画像をPOSTすることもできます。
画像は、私のケースでは(サーバーは既に存在し、セットアップされていました)、次のように一意のコンテナ/バケットでOpenStack Swiftに保存する必要があります:owner_id_task_id。ユーザーは同じ名前と拡張子を持つが、内容は異なるファイルをアップロードできるということは関連しています。
別の部分もOpenStackの同じコンテナに送信されます。Celeryワーカータスクからファイルをスウィフトします(アップロードされたファイルに基づく処理)。
私の目標は、生のイメージを格納するための実行時コンテナ構造と、後処理されたイメージを動的に作成/オーバーライドすることです。
どのようにこの問題を解決できますか?
ありがとうございました!
その可能性がありますが推奨されています。例えば、Herokuは静的ファイルとメディアファイルにs3を使用するよう提案しています。https://devcenter.heroku.com/articles/s3 このためのdjangoソリューションは、「ホワイトテーション」を使用していますが、静的ファイル用であり、ファイル。 – hansTheFranz
@hansTheFranzより具体的には:OpenStack Swiftに画像をアップロードして、 '{1} _ {2}'形式のformat(user_id、task_id)というユニークなコンテナにしたいと思います。 user_idはRESTリクエストからrequest.user、task_idから取得しました。したがって、コンテナの名前は、たとえば '12_05'または '23_111'のように指定する必要があります。そんなことをすることは可能ですか? – sorryMike
OpenStackのエキスパートではありません私はコンテナの名前ポリシーをどのように管理しているかは分かりませんが、一般的にはあなたが望むように呼び出すことができるはずです。しかし、それはあなたが各ユーザーのコンテナを作成したいと思われる?私はそれがOpenStackのベストプラクティスだとは思わない。あなたが何をしたいのか、なぜ、質問しているのか教えてください。おそらく、別のパスを使用して簡単に実現できるソリューションを取り組んでいるかもしれません。 – hansTheFranz