Сбой Azure SharedKeyCredentials, поскольку входной байтовый массив содержит неверный 4-байтовый конечный блок - PullRequest
0 голосов
/ 18 сентября 2018

При попытке запустить простой пример из Storage-blobs-java-v10-quickstart и использовать ссылку, указанную в Справочный документ API как:

String accountName = "acsazurestore";
String accountKey = "qjC6s44AmSbAkJ7Xqdsks/jjZDIYRTY8qg...."; [not the full one]

SharedKeyCredentials sharedKeyCredentials = new SharedKeyCredentials(accountName, accountKey);

Во время компиляции (mvn compile exec:java), программа завершается ошибкой с сообщением об ошибке ниже:

Caused by: java.lang.IllegalArgumentException: Input byte array has wrong 4-byte ending unit
at java.util.Base64$Decoder.decode0(Base64.java:704)
at java.util.Base64$Decoder.decode(Base64.java:526)
at java.util.Base64$Decoder.decode(Base64.java:549)
at com.microsoft.azure.storage.blob.SharedKeyCredentials.<init>(SharedKeyCredentials.java:60)
at quickstart.Quickstart.main(Quickstart.java:162)

Ценю любую помощь!

1 Ответ

0 голосов
/ 19 сентября 2018

Должно работать даже с поддельным ключом аккаунта. Я предполагаю, что это может произойти в другой строке кода. Если это не тот случай. Я рекомендую вам создать новый проект и добавить следующую зависимость.

<dependency>
        <groupId>com.microsoft.azure</groupId>

        <artifactId>azure-storage-blob</artifactId>

        <version>10.1.0</version>

</dependency>

И просто добавьте следующий код и протестируйте снова.

public static void main(String... args) throws Exception
    {
        String accountName = "accountName";
        String accountKey = "xxxxxxxxxxx";

        try {
            SharedKeyCredentials sharedKeyCredentials = new SharedKeyCredentials(accountName, accountKey);
            System.out.print(sharedKeyCredentials.getAccountName());
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        }

    }

Результат теста:

enter image description here

...