を投げサンプルプログラム、私は基本的な読み、作成を実行しようとしています、更新、下記のリンクで与えられるようAzureテーブルストレージの操作を削除します。 https://azure.microsoft.com/en-us/documentation/articles/storage-java-how-to-use-table-storage/Java用のAzure SDK - Java用AzureストレージSDKを使用して例外:InvalidKeyException
表を作成するためのサンプルプログラム:
package com.azure.test;
import java.io.UnsupportedEncodingException;
import com.microsoft.azure.storage.*;
import com.microsoft.azure.storage.table.CloudTable;
import com.microsoft.azure.storage.table.CloudTableClient;
import com.microsoft.windowsazure.core.utils.Base64;
public class App
{
public static void main(String[] args) throws StorageException, UnsupportedEncodingException
{
String storageConnectionString =
"DefaultEndpointsProtocol=http;" +
"AccountName=accountname;" +
"AccountKey=storagekey;"+
"EndpointSuffix=table.core.windows.net";
try
{
// Retrieve storage account from connection-string.
CloudStorageAccount storageAccount =
CloudStorageAccount.parse(storageConnectionString);
CloudTableClient tableClient = storageAccount.createCloudTableClient();
//Create the table if it doesn't exist.
String tableName = "MyTable";
CloudTable cloudTable = tableClient.getTableReference(tableName);
cloudTable.createIfNotExists();
}
catch (Exception e)
{
// Output the stack trace.
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
コードはかなり分かりやすいようです。 Azureテーブルストレージに接続し、指定された名前のテーブルが存在しない場合は作成します。しかし、私はInvalidKeyExceptionを取得しています(完全な例外は以下に貼り付けられています)。
java.security.InvalidKeyException:Storage Keyが有効なBase64エンコード文字列ではありません。 com.microsoft.azure.storage.StorageCredentials.tryParseCredentials(StorageCredentials.java:68)com.microsoft.azure.storage.CloudStorageAccount.tryConfigureServiceAccount(CloudStorageAccount.java:408)で
com.microsoft.azure ATで
.storage.CloudStorageAccount.parse(CloudStorageAccount.java:259)com.azure.test.App.main(App.java:71)で
私はAzureストレージを使用して多くの人々が直面していることに驚いていますこの問題。私はストレージキーを使用してエンコードしようとしましたが、接続文字列でエンコードされたキーを使用しましたが、まだ使用していません。
String encodedKey=Base64.encode(storageKey.getBytes())
String storageConnectionString =
"DefaultEndpointsProtocol=http;" +
"AccountName=accountname" +
"AccountKey="+encodedKey+
"EndpointSuffix=table.core.windows.net;";
誰でもこの手伝いできますか?私はGoogleでたくさん検索し、1人のユーザーがディスカスで同様の問題を提起しているのを見つけることができましたが、答えが提供されていない、あるいは答えが役に立たなかったことがあります。
こんにちはブライアン、私はあなたの提案を取って、答えのボックスに私の解決策を掲載した。また、私はGauravの回答をupvoteしようとしていますが、少し助けてくれましたが、担当者の数が少ないためにできません。残念ながらカウントアップするために、少なくとも15人の担当者が必要です。 – user2123507
あなたが投票できない場合でも、ダニをクリックして回答の1つを受け入れることができるはずです。 –