あるストレージ アカウントを別のストレージ アカウントにコピーする必要があります。を作成し、Runbook毎日実行するようにスケジュールしました。これは増分コピーです。
私がしていることは
- ソース ストレージ コンテナー内の BLOB を一覧表示する
- 宛先ストレージ コンテナー内の BLOB を確認する
- 宛先コンテナーに存在しない場合は、ブロブをコピーします
Start-AzureStorageBlobCopy
これは小さなサイズのコンテナーでは機能しますが、タスクを実行するたびに 1,000 万個のブロブすべてを処理する必要があるため、非常に長い時間がかかり、たとえば 1,000 万個のブロック ブロブを含むコンテナーではコスト効率が悪いことは確かです。
ドキュメントには表示されませんが、powershellDateModifedSinceのような条件付きヘッダーを使用できる方法はありますか。Get-AzureStorageBlob -DateModifiedSince date
DateModifiedSince私は試していませんが、nodejsライブラリで使用できることがわかります
とにかく、使用できるようにpowershellでできることはありますRunbooksか?
編集:
AzCopy を使用して、700 万の BLOB を含むストレージ アカウントのコピーを作成し、いくつかの新しい BLOB をアップロードして、azcopy を再度開始しました。いくつかの新しくアップロードされたファイルをコピーするには、まだかなりの時間がかかります。
AzCopy /Source:$sourceUri /Dest:$destUri /SourceKey:$sourceStorageKey /DestKey:$destStorageAccountKey /S /XO /XN /Y
すぐにブロブ名でブロブをフィルタリングできます
たとえばGet-AzureStorageBlob -Blob、700 万レコードからすぐに BLOB を返します
ブロブを他のプロパティでフィルタリングすることも可能だったはずです..