0

Web から画像ファイルをダウンロードし、メタデータを含む画像ファイルをデータベースに保存する Celery タスクを実装しました。
実はDjangoを使ってImageFieldModelいるので、メタデータはデータベースに保存し、ファイルはAzure Blob Storageに保存しています。

デモ環境では問題なく動いています。イメージファイルは、ワーカーと物理的に同じ場所にあるファイルシステムに保存されます。

ただし、展開環境に問題があります。ファイル ストレージは Azure Blob Storage です。

場合によっては、Imagefile が保存されないことがあります。メタデータはデータベースでソートされます。

なぜこれが起こるのか誰にも分かりません。

画像ファイルを保存する方法は非常に簡単です。

new_contents = ImageContents(user = user, privacy = privacy)

new_contents.thumb_file.save('filename.jpeg', thumb_file, save = True)

new_contents.save()

Azure Blob Storage に django-storage を実装しました。

これは、django アプリでファイルを開くコードです。

  def _open(self, name, mode='rb'):

    inMemFile = StringIO.StringIO(self.blob.get_blob(self.container, name))
    inMemFile.name = name
    inMemFile.mode = mode

    return File(inMemFile)
4

0 に答える 0