>

암호를 적용하여 BLOB을 Azure Blob Storage에 업로드하고 싶습니다. 그래서 다음 코드를 사용하여 시도했습니다.

File f=new File("/home/prospera-user15/Desktop/test/download.jpeg");
        CloudStorageAccount account = CloudStorageAccount.parse(storageConnectionString);
        CloudBlobClient serviceClient = account.createCloudBlobClient();
        // Container name must be lower case.
        CloudBlobContainer container = serviceClient.getContainerReference("upload1");
        container.createIfNotExists();
        CloudBlockBlob blob = container.getBlockBlobReference("megha");
        final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(2048);
        final KeyPair wrapKey = keyGen.generateKeyPair();
        RsaKey key = new RsaKey("RSA",wrapKey);
        System.out.println("Uploading the encrypted blob.");
        BlobEncryptionPolicy policy = new BlobEncryptionPolicy(key, null);
        BlobRequestOptions options = new BlobRequestOptions();
        options.setEncryptionPolicy(policy);
        AccessCondition accessCondition = null;
        OperationContext opContext = null;
        try{
            blob.upload(new FileInputStream(f), f.length(), accessCondition, options, opContext);
        }catch (IOException e) {
            System.out.println(e.getMessage());
        }catch (StorageException e) {
            System.out.println(e.getErrorCode());
        }

  • 답변 # 1

    AbstractMethodError  마지막 컴파일 이후 일부 클래스의 정의가 호환 될 수 없음

    귀하의 경우, 새로운 인터페이스 메소드가 누락되고 RsaKey 일 수있는 스택 추적에 따라 이전 버전의 인터페이스 구현을 사용 중일 수 있습니다  클래스/인터페이스.

  • 답변 # 2

    이 예외는 응용 프로그램이 추상 메서드를 호출하려고 할 때 발생합니다. 일반적으로이 오류는 컴파일러에서 발생합니다. 이 오류는 현재 실행중인 메소드가 마지막으로 컴파일 된 이후 일부 클래스의 정의가 호환 불가능하게 변경된 경우에만 런타임시 발생할 수 있습니다.

    소스 : https : //docs.oracle.com/javase/6/docs/api/java/lang/AbstractMethodError.html

    여기서 설명서에 따라 응용 프로그램이 키 또는 비밀 키를 사용하도록 승인했는지 확인하셨습니까?

관련 자료

  • 이전 python pandas - 주어진 순서에 따라 정렬 된 파일 이름이있는 열
  • 다음 javascript - 텍스트를 교체 한 후 공간을 동일하게 유지하는 방법은 무엇입니까?