0

Azure BLOB ストレージから BLOB を取得し、ファイルをユーザーに返してダウンロードしようとしています。

今私がやろうとしているのは、紺碧からファイルを取得し、ローカルに保存し、静的ファイルを使用してファイルを返すことです:

   def getDownload(filename):
        try:
            file = blob.get_blob('picture', filename)
            with open(filename, 'w') as f:
                f.write(file)
        except:
            abort(400, 'Download blob fail')
        return static_file(filename, root='.', download=filename)

最初にファイルをサーバーに保存せずに、ユーザーにストリーミングするために何をしようとしていますか。

どうすれば達成できますか?

4

1 に答える 1

1

残念ながら、Python のサンプル コードはありませんが、検証目的でできることは次のとおりです。

  1. コンテナが公開されていないことを確認してください
  2. クライアントは、Web アプリケーションへの BLOB 内の特定のファイルに対する要求を Web アプリケーションに送信します。
  3. このクライアントがその BLOB へのアクセスを許可されているかどうかを確認します (許可されていない場合は 401 エラーを返します)。
  4. この BLOB の Shared Access Signature を短い時間枠で作成します (約 5 分で完了します)。
  5. Location-Header の blob への URL を含む 303 (その他を参照) html ステータス コードをクライアントに返します。

例:

クライアントはhttp://myservice.cloudapp.net/blobs/somefile.extを要求し、リソースへのアクセスが検証されます。次に、彼はhttp://mystorage.blob.core.windows.net/container/somefile.ext?SHARED_ACCESS_SIGNATUREにリダイレクトされます。このリンクは、そのクライアントのみが数分間使用できます。

于 2013-03-11T14:38:49.520 に答える