AzureからC#を使用してファイルをダウンロードし、そのリターン後にMemoryStreamにストリーミングしたい(AzureのBLOBに行くAzure URI) - ユーザーはフロントエンドでユーザーに表示することができますそれらのPDFファイルをブラウザーでダウンロードするか、ダウンロードしてください。 Azureには複数のブロブ/ファイルがありますので、各ファイルをループしてストリームにダウンロードしたいと考えています:foreachを使用しています。ファイルを参照してAzure Blobsをダウンロードするには?
私はこれらのBLOBをどのように参照することができないのですか?CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
ここでは特定のファイルの名前を付けることができましたが、複数のファイルがありますので、ここに "fileName"
コード:
var files = container.ListBlobs();
foreach (var file in files)
{
using (var memoryStream = new MemoryStream())
{
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
blockBlob.DownloadToStream(memoryStream);
}
}
私はコードで今訂正ループして、すべてのブロブをダウンロードしてるかどうかわからないんだけど?
また、fileName
をfile.Uri.Segments.Last()
- に置き換えようとしましたが、どれがblobの名前になるかはわかりません。
私が抱えている問題は、フロントエンドでリンクを使用しようとするたびにforeachがただ1つのPDFファイルを取得しているということです。だから、どうすれば各ファイルを適切にループしてダウンロードできるのか知る必要がありますか?
@ScottChamberlain - この作品の後に実際に、私はコンテナだけで、しかし、読み取りアクセス権を持つように、そのユーザーは短期間しかこれらのリンクを使用することができますので、あなたには、いくつかの他の方法をしている場合、SASを使用することを考えていましたそれは私に知らせてくれるでしょう。 – Pathankotia
私は、それぞれのBLOBのbyte []をcontent-type&fileという名前のユーザーに返す方法を持っています。まずストリームにダウンロードしてから、これらのファイルをbyte []に変換して戻したい。 – Pathankotia
投稿したコードを実行しようとすると何がうまくいかないか教えてください。あなたは予期せぬエラーを起こしていますか?詳細を追加するには、質問を編集してください。 –