私はこのアプローチを使用してファイルを暗号化し、それらを Azure ブロック BLOB に格納しています。暗号化された BLOB を別の BLOB ストレージ アカウントにコピーし、その過程で暗号化を解除したいと考えています。Azure 内で完全に非同期的に実行され、転送中にローカル コンピューターを介して BLOB の内容をダウンロードしない "BLOB のコピー" 操作を実行できることはわかっています。これはCloudBlockBlob.StartCopy
メソッドによって達成されると思います。しかし、暗号化されたファイルでそれを行い、他のストレージ アカウントへの転送中に復号化することは可能ですか?
上記のリンクをたどると、私のコードは次のようになります。blob.OpenRead
動作しますがblob2.StartCopy
動作しません。
BlobEncryptionPolicy policy = new BlobEncryptionPolicy(null, cloudResolver);
BlobRequestOptions options = new BlobRequestOptions() { EncryptionPolicy = policy };
CloudBlockBlob blob = container.GetBlockBlobReference("MyFile.txt");
//var blobStream = blob.OpenRead(null, options); //this works
CloudBlockBlob blob2 = container2.GetBlockBlobReference("MyFile2.txt");
blob2.StartCopy(blob, null, null, options, null); //this fails with: The remote server returned an error: (404) Not Found.