uriから別のuri(同じストレージアカウント内の両方)にBLOBをコピーしようとしていますが、両方ともクレデンシャル用のSASトークンを持っています。これはIP制限のないSASトークンでうまく動作しますが、ソースBLOB SASトークンがIP制限されていると失敗します。SASトークン(IP制限付き)を使用したAzureコピーBLOB
注:私はIP間違って、他のブロブの機能は、アップロード、削除、すなわちリストを作業持っているので、それが失敗していないなど
例コード:
Uri sourceBlobUri = new Uri("https://mystorage.blob.core.windows.net/a-container/a.json");
Uri targetBlobUri = new Uri("https://mystorage.blob.core.windows.net/a-container-archive/a.json");
var prodTokenSource = @"A_SAS_TOKEN_WITH_A_IP_RESTRICTION";
var prodTokenArchive = @"A_SAS_TOKEN_WITH_A_IP_RESTRICTION";
StorageCredentials sourceCredentials = new StorageCredentials(prodTokenSource);
StorageCredentials targetCredentials = new StorageCredentials(prodTokenArchive);
CloudBlockBlob sourceBlob = new CloudBlockBlob(sourceBlobUri, sourceCredentials);
CloudBlockBlob targetBlob = new CloudBlockBlob(targetBlobUri, targetCredentials);
await targetBlob.StartCopyAsync(sourceBlob); //Fails 403 error
一つの推測では、ということですコピー要求はAzure内から発信されているため、IPアドレスはブロックされていますか? Azure内のIP範囲を受け入れるようにソースSASトークンを設定する必要がありますか? SASトークンを使用できるようにブロブをコピーする別の方法はありますか?
ありがとうございました。これをAPIのバグと見なすべきかどうか疑問に思っていますか?この機能はそこにありますが、ドキュメントの記述方法は機能しません。おそらく私はコピーメソッドが元の資格情報を保持するように要求するべきです。 –
私はこの機能を意図したとおりに動作させるので、これをバグと呼んでいません。特定のIPアドレスからSAS URLを使用する場合は、これが目的です。 –