2012-04-02 10 views
0

簡単なアップローダを使用してクライアントで撮影し、blob.UploadByteArray()を使用してコードビハインドの空白のブロブにアップロードして、自分のサイトにビデオをアップロードしています。その瞬間にどれだけのバイトがアップロードされるのかを進めますか?そのためのAPIや回避策はありますか?サードパーティーのアップローダーやブロブプッシャーなどは必要ありません。事前に感謝!ファイルを空白のブロブにアップロード中にアップロードの進捗状況を追跡

答えて

0

進行状況を追跡するためのAPIが見つかりませんでした。私が進捗バーを実装した1つの方法は、ブロブを小さいチャンクとして空のストレージにアップロードすることです。各チャンクが正常にアップロードされると、チャンクの数に基づいてプログレスバーのバリエーションを設定できます。

-1

Azure StorageではブロックをBLOBにアップロードできます。 this example on MSDN blogsをご覧ください。

データのブロックをAzureに送信すると、進行状況を追跡できます。

0

代わりに、私はそれがしょっちゅうそれが読み出されたことをイベントを提起するようにするFileStreamをサブクラス化し、私のサブクラスを提供...

を私はブログの記事は、CorneMで述べたことを読んで私は、実装にあまりにも熱心ではなかったですfilestreamをSDKのAzureストレージクライアントのUploadFromStreamメソッドに追加します。多くのクリーナー、私見

public delegate void PositionChanged(long position); 

public class ProgressTrackingFileStream: FileStream 
{ 
    public int AnnounceEveryBytes { get; set; } 
    private long _lastPosition = 0; 


    public event PositionChanged StreamPositionUpdated; 

    // implementing other methods that the storage client may call, like ReadByte or Begin/EndRead is left as an exercise for the reader 

    public override int Read(byte[] buffer, int offset, int count) 
    { 
     int i = base.Read(buffer, offset, count); 

     MaybeAnnounce(); 

     return i; 
    } 

    private void MaybeAnnounce() 
    { 
     if (StreamPositionUpdated != null && (base.Position - _lastPosition) > AnnounceEveryBytes) 
     { 
      _lastPosition = base.Position; 
      StreamPositionUpdated(_lastPosition); 
     } 
    } 

    public ProgressTrackingFileStream(string path, FileMode fileMode) : base(path, fileMode) 
    { 
     AnnounceEveryBytes = 32768; 
    } 

} 

そして、この(_containerが私の紺碧の貯蔵容器で、ファイルは私のローカルファイルのためのFileInfoである)のようにそれを使用する:これは正確ではありません

 CloudBlockBlob blockBlob = _container.GetBlockBlobReference(blobPath); 

     using (ProgressTrackingFileStream ptfs = new ProgressTrackingFileStream(file.FullName, FileMode.Open)) 
     { 
      ptfs.StreamPositionUpdated += ptfs_StreamPositionUpdated; 

      blockBlob.UploadFromStream(ptfs); 
     } 
+0

、あなただけ読んで追跡しますファイルをメモリにアップロードしてAzureにアップロードしないようにします。私は自分自身で解決策を探しています、私は正確なアプローチはブロックレベルの周りでなければならないと思います。 – Hossam

関連する問題