我们如何使用 Java 获取 Azure 存储帐户访问密钥?需要什么所有细节才能做到这一点。
谢谢,普里特
@Prit,您需要使用 Azure Storage Service Management SDK for Java 来获取帐户密钥,请参阅以下步骤。
MANAGEMENT CERTIFICATES
中上传SETTINGS
,请参阅博客。I. 使用 Java keytool 创建证书,请参见下面的命令。
keytool -genkeypair -alias mydomain -keyalg RSA -keystore WindowsAzureKeyStore.jks -keysize 2048 -storepass "test123";
keytool -v -export -file D:\WindowsAzureSMAPI.cer -keystore WindowsAzureKeyStore.jks -alias mydomain
您需要将这些依赖项添加到您pom.xml
的 maven 项目文件中。
<!-- https://mvnrepository.com/artifact/com.microsoft.azure/azure-svc-mgmt -->
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-svc-mgmt</artifactId>
<version>0.9.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.microsoft.azure/azure-svc-mgmt-storage -->
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-svc-mgmt-storage</artifactId>
<version>0.9.3</version>
</dependency>
这是我获取帐户密钥的代码。
import org.xml.sax.SAXException;
import com.microsoft.windowsazure.Configuration;
import com.microsoft.windowsazure.core.utils.KeyStoreType;
import com.microsoft.windowsazure.exception.ServiceException;
import com.microsoft.windowsazure.management.configuration.ManagementConfiguration;
import com.microsoft.windowsazure.management.storage.StorageManagementClient;
import com.microsoft.windowsazure.management.storage.StorageManagementService;
import com.microsoft.windowsazure.management.storage.models.StorageAccountGetKeysResponse;
public class AccountKeys {
public static void main(String[] args) throws IOException, URISyntaxException, ServiceException, ParserConfigurationException, SAXException {
String uri = "https://management.core.windows.net/";
String subscriptionId = "<subscription-id>";
String keyStorePath = "<path>/WindowsAzureKeyStore.jks";
String keyStorePassword = "test123";
String storageName
Configuration config = ManagementConfiguration.configure(
new URI(uri),
subscriptionId,
keyStorePath, // the file path to the JKS
keyStorePassword, // the password for the JKS
KeyStoreType.jks // flags that I'm using a JKS keystore
);
StorageManagementClient client = StorageManagementService.create(config);
StorageAccountGetKeysResponse response = client.getStorageAccountsOperations().getKeys(storageName);
String pk = response.getPrimaryKey();
String sk = response.getSecondaryKey();
System.out.println(pk);
System.out.println(sk);
}
}
作为参考,相关的 REST API 在这里。
若要使用 java 获取存储帐户访问密钥,可以使用 Azure Rest API。提供了一个 java sdk,它可以让您轻松管理您的存储帐户。
要获取访问密钥,您需要使用存储帐户所在的资源组名称和存储帐户名称。使用这些信息取回存储帐户后,称为“密钥”的方法会返回访问密钥。
List<StorageAccountKey> storageAccountKeys = storageAccount.keys();
这是一个完整的文档示例。
问候