.NET 用 Azure Storage Data Movement Common クライアント ライブラリ - バージョン 12.0.0-beta.3
サーバー バージョン: 2021-02-12、2020-12-06、2020-10-02、 2020-08-04、2020-06-12、2020-04-08、2020-02-10、2019-12-12、2019-07-07、および 2020-02-02
Azure Storage は、高い可用性とセキュリティ、耐久性、スケーラビリティ、冗長性を備えたクラウド ストレージを提供する、Microsoft が管理するクラウド サービスです。
Azure Storage データ移動ライブラリは、顧客データのアップロード、ダウンロード、コピー用に最適化されています。
現在、このバージョンのデータ移動ライブラリでは BLOB のみがサポートされています。
ソースコード | API リファレンス ドキュメント | REST API のドキュメント | 製品ドキュメント
作業の開始
パッケージをインストールする
NuGet で使用する .NET 用 Azure Storage クライアント ライブラリをインストールすると、Azure.Storage.DataMovement
クライアント ライブラリが含まれます。
dotnet add package Azure.Storage.DataMovement --prerelease
前提条件
このパッケージを使用するには、 Azure サブスクリプション と ストレージ アカウント が必要です。
新しいストレージ アカウントを作成するには、Azure Portal、Azure PowerShell、または Azure CLI を使用できます。 Azure CLI を使う例を次に示します。
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
クライアントを認証する
データ移動ライブラリを操作するには、TransferManager クラスを使用してインスタンスを作成する必要があります。
TransferManager のインスタンスを作成する
TransferManager transferManager = new TransferManager(new TransferManagerOptions());
オプションを使用して TransferManager のインスタンスを作成する
// Create BlobTransferManager with event handler in Options bag
TransferManagerOptions transferManagerOptions = new TransferManagerOptions();
TransferOptions options = new TransferOptions()
{
MaximumTransferChunkSize = 4 * Constants.MB,
CreateMode = StorageResourceCreateMode.Overwrite,
};
TransferManager transferManager = new TransferManager(transferManagerOptions);
主要な概念
Azure Storage Common クライアント ライブラリには、 認証資格情報 や RequestFailedException などの共有インフラストラクチャが含まれています。
スレッド セーフ
すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、クライアント インスタンスの再利用に関する推奨事項は、スレッド間でも常に安全になります。
その他の概念
クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間
例
BLOB DataMovement の例を参照してください。
それぞれの DataTransfer オブジェクトを使用して TransferManager を使用して転送を一時停止する
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the Transfer Manager using the DataTransfer object
await transferManager.PauseTransferIfRunningAsync(dataTransfer);
それぞれの転送 ID を使用して TransferManager を使用して転送を一時停止する
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
string transferId = dataTransfer.Id;
// Pause from the Transfer Manager using the Transfer Id
await transferManager.PauseTransferIfRunningAsync(transferId);
それぞれの DataTransfer を使用して転送を一時停止する
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the DataTransfer object
await dataTransfer.PauseIfRunningAsync();
転送を再開する
async Task<(StorageResource Source, StorageResource Destination)> MakeResourcesAsync(DataTransferProperties info)
{
StorageResource sourceResource = null, destinationResource = null;
if (BlobStorageResources.TryGetResourceProviders(
info,
out BlobStorageResourceProvider blobSrcProvider,
out BlobStorageResourceProvider blobDstProvider))
{
sourceResource ??= await blobSrcProvider.MakeResourceAsync(GetMyCredential(info.SourcePath));
destinationResource ??= await blobSrcProvider.MakeResourceAsync(GetMyCredential(info.DestinationPath));
}
if (LocalStorageResources.TryGetResourceProviders(
info,
out LocalStorageResourceProvider localSrcProvider,
out LocalStorageResourceProvider localDstProvider))
{
sourceResource ??= localSrcProvider.MakeResource();
destinationResource ??= localDstProvider.MakeResource();
}
return (sourceResource, destinationResource);
}
List<DataTransfer> resumedTransfers = new();
await foreach (DataTransferProperties transferProperties in transferManager.GetResumableTransfersAsync())
{
(StorageResource resumeSource, StorageResource resumeDestination) = await MakeResourcesAsync(transferProperties);
resumedTransfers.Add(await transferManager.ResumeTransferAsync(transferProperties.TransferId, resumeSource, resumeDestination));
}
トラブルシューティング
すべての Azure Storage サービスは、役に立つ と共に RequestFailedException をスローします。ErrorCode
次のステップ
共同作成
これらのライブラリの構築、テスト、および貢献の詳細については、「 Storage CONTRIBUTING.md 」を参照してください。
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。