2017-12-15 20 views
1

このようなAzureブロブストレージからビデオをダウンロードしようとしています。しかし、私がそれをダウンロードするたびに、ファイルは常に空です。私は、同じファイルをストレージにアップロードしてチェックすることでそれをテストしました。 blobファイルのサイズを確認すると、Azureストレージで空になります。Azure Blob Storageからビデオをダウンロードするには?

 //Gets the folder and the particular video to upload to YouTube 
     CloudBlobContainer videoscontainer = blobClient.GetContainerReference("videos"); 
     CloudBlob videofile = videoscontainer.GetBlobReference("test.mp4"); 

     MemoryStream videofileinmemory = new MemoryStream(); 
     await videofile.DownloadToStreamAsync(videofileinmemory); 


     CloudBlobContainer container = blobClient.GetContainerReference("checkedvideos"); 
     //Create the container if it doesn't already exist. 
     container.CreateIfNotExists(); 
     container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); 

     CloudBlockBlob blockBlob = container.GetBlockBlobReference("sametestfile.mp4"); 
     blockBlob.UploadFromStream(videofileinmemory); 
+0

'videofileinmemory'ストリームのサイズはどれくらいですか? –

+0

* blob *が空の場合、ダウンロードするビデオはありません。あなたは* upload *が確実に働いていますか? –

+0

@GauravMantriビデオのサイズは8MBです –

答えて

0

空白のブロブストレージでは、ファイルタイプはありません。したがって、他のブロブから.mp4ブロブをダウンロードすることに違いはありません。

あなたの場合、blobをアップロードする前に、ビデオファイルのメモリ位置を0にリセットする必要があります。そうすればうまくいくはずです。

videofileinmemory.Position = 0; 
blockBlob.UploadFromStream(videofileinmemory); 

我々は別のコンテナからブロブをコピーしたい場合は、メモリへのブロブをダウンロードする必要はありません。 CloudBlockBlob.StartCopyも使用できます。

CloudBlockBlob videofile = videoscontainer.GetBlockBlobReference("test.mp4"); 
CloudBlockBlob blockBlob = container.GetBlockBlobReference("sametestfile.mp4"); 
blockBlob.StartCopy(videofile); 
関連する問題