0

Add-BlobAzure コマンドレットを呼び出そうとしています

Add-Blob -BlobType Block -FilePath $packagePath -ContainerName $blobContainerName

最近まで問題なく動作していましたが、今では失敗します

Operation could not be completed within the specified time.

メッセージ。なんらかの理由でアップロード速度が非常に遅くなり、ファイルを十分に速くアップロードできなくなったのではないかと思います。

その操作のタイムアウト値を増やすことはできますか?

4

1 に答える 1

2

http://wappowershell.codeplex.comのコマンドレットを使用していますか? これらのコマンドレットは現在 (一種の) 非推奨であり、Windows Azure 管理コマンドレット ( http://msdn.microsoft.com/en-us/library/windowsazure/jj554330.aspx )に置き換えられていることに注意してください。残念ながら、BLOB を追加するためのコマンドレットは、新しいコマンドレットにはありません。

質問に戻りますが、このコマンドレットでリクエストのタイムアウトを指定することはできないと思います。また、CodePlex サイトで変更できるソース コードもありません。できることは、PowerShell を介してストレージ クライアント ライブラリを直接呼び出すことです。このブログ投稿 ( http://www.fsmpi.uni-bayreuth.de/~dun3/archives/uploading-a-file-to-azure-blob-storage-from-powershell/ ) のコードを自由に変更しました。 528.html ) に含まれており、そこに Timeout パラメータのサポートが含まれています。

    Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref\Microsoft.WindowsAzure.StorageClient.dll"

    $accountName = "<your account name>";

    $accountKey = "<your account key>";

    $blobContainerName = "<your blob container name>";

    $fullFilePath = "<Full path of the file you wish to upload>";

    $requestTimeoutInSeconds = 600;

    $cloudStorageAccountNameAndKey = new-object Microsoft.WindowsAzure.StorageCredentialsAccountAndKey($accountName, $accountKey);

    $cloudStorageAccount = new-object Microsoft.WindowsAzure.CloudStorageAccount($cloudStorageAccountNameAndKey, $true);

    $cloudBlobClient = [Microsoft.WindowsAzure.StorageClient.CloudStorageAccountStorageClientExtensions]::CreateCloudBlobClient($cloudStorageAccount)

    $blobContainer = $cloudBlobClient.GetContainerReference($blobContainerName);

$blobContainer.CreateIfNotExist();

    $blockBlob = $blobContainer.GetBlockBlobReference("<blob name>");

    $blobRequestOptions = new-object Microsoft.WindowsAzure.StorageClient.BlobRequestOptions;

    $blobRequestOptions.Timeout = [TimeSpan]::FromSeconds($requestTimeoutInSeconds);

    $blockBlob.UploadFile($fullFilePath, $blobRequestOptions);

Microsoft の PowerShell コマンドレットに代わるものを探している場合は、Cerebrata Azure Management Cmdlets [私はこの製品の開発者の 1 人です] を参照することをお勧めします。完全なストレージ管理とサービス管理のためのコマンドレットがあります。

お役に立てれば。

于 2012-10-20T07:41:14.873 に答える