Я использую this approach для шифрования файлов и сохранения их в блоках блока Azure. Я хотел бы скопировать зашифрованный blob в другую учетную запись памяти blob и расшифровать ее в процессе. Я знаю, что можно выполнить операцию «копировать блоб», которая выполняется полностью внутри Azure асинхронно и не загружает содержимое blob через мой локальный компьютер в пути. Я считаю, что это достигается с помощью метода CloudBlockBlob.StartCopy
. Но возможно ли это сделать с зашифрованным файлом и расшифровать его при переходе на другую учетную запись?Расшифровывать и копировать blob на другую учетную запись памяти blob?
Следуя этой ссылке выше, мой код выглядит следующим образом. 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.
Какого NuGet пакет и версию вы используете для управления учетными записями? – juvchan
@juvchan 6.1 Microsoft.WindowsAzure.Storage DLL – GregGalloway
просто убедитесь, что ваша учетная запись хранилища создана в режиме класса или в режиме диспетчера ресурсов? Похоже, что раньше вы использовали nuget. – juvchan