複数のコンテナを1つのAzure BLOBストレージアカウントから別のBLOBストレージアカウントにコピーしようとしています。Microsoft.WindowsAzure.Storage.DataMovement.TransferManagerのCopyDirectoryAsyncがいつ終了したかを確認するにはどうすればよいですか?
私はC#とTransferManager.CopyDirectoryAsync
の方法でMicrosoft.WindowsAzure.Storage.DataMovement
ライブラリを使用しています。
すべてのコンテナを検出するのに問題はありませんが、コンテナをコピーしようとすると、コピーされたブロブについてのフィードバックは得られません。私は数百万のブロブをコピーしたいので、これが終わったときのフィードバックがほしい。私は、非同期サーバー側のコピー、I.Eを使用しています。 isServiceCopy = true
私は
return await TransferManager.CopyDirectoryAsync(sourceDirectory,
destinationDirectory, true, options, null).ConfigureAwait(false);
を呼び出していると私は待っていますので、私はコピーが完了するまで、このラインから渡さないことを期待しています。しかし、それはほとんど直ちに通過し、のTransferStatus
結果を調べると、常に0
になります。 whileループで結果を繰り返しチェックしても、この数値は0
から決して変更されません。しかし、Azureポータルをチェックインすると、予想されるすべてのファイルが正常にコピーされています。
DirectoryTransferContext
にProgressHandler
を設定しようとしましたが、数回呼び出されますが、すべてのプロパティは0
です。
なぜ私はコピーからのフィードバックを得ていないのですか?
ありがとうございます。クリス
コードは私の側ではうまくいきます。さらなるトラブルシューティングのために、より多くのコードスニペットを共有できますか? –
こんにちは@ ZhaoxingLu - マイクロソフト、あなたの応答に感謝します。ここにコンソールアプリケーションコードをアップロードしましたhttps://gist.github.com/ChrisBellew/c4c938c6d5e2ddab4c8580503d1f890d問題は、実際にコピーを行わずに121行目の 'CopyDirectoryAsync'が完了し、97行目の' CountBlobsAsync'が常に0を返すことですおそらくコピーは実際には動作していないからです。ご協力いただきありがとうございます! – ChrisBellew