Java 了解Azure文件存储:UnknownHostException

Java 了解Azure文件存储:UnknownHostException,java,azure,Java,Azure,编辑:我刚刚意识到下面的AccountName指的是一个我尚未创建的存储帐户。我以为这只是我拥有的一般azure“帐户”。令人失望 我正在研究Java/Azure文件存储示例。我遇到了一个问题,我无法找到解决方案: 英文: createFileShare异常:java.net.UnknownHostException:在两次查询后未能解析“我提供的accountname.file.core.windows.net” 我不确定AccountName和AccountKey的确切定义,我认为这是正确的

编辑:我刚刚意识到下面的AccountName指的是一个我尚未创建的存储帐户。我以为这只是我拥有的一般azure“帐户”。令人失望

我正在研究Java/Azure文件存储示例。我遇到了一个问题,我无法找到解决方案:

英文:

createFileShare异常:java.net.UnknownHostException:在两次查询后未能解析“我提供的accountname.file.core.windows.net”

我不确定AccountName和AccountKey的确切定义,我认为这是正确的,在较小程度上是正确的

我的目标代码:

    public static final String connectStr =
        "DefaultEndpointsProtocol=https;" +
                "AccountName=my-provided-accountname;" +
                "AccountKey=87D2A2E999180C4A624E1A8153CEBD6";

public static void main(String[] args) {
    SpringApplication.run(AzureFileStorageApplication.class, args);
    ShareClient shareClient = new ShareClientBuilder()
            .connectionString(connectStr).shareName("testfilestorage")
            .buildClient();
    createFileShare(connectStr,"hello1A");
}
public static Boolean createFileShare(String connectStr, String shareName)
{
    try
    {
        ShareClient shareClient = new ShareClientBuilder()
                .connectionString(connectStr).shareName(shareName)
                .buildClient();

        shareClient.create();
        System.out.println(shareClient);
        return true;
    }
    catch (Exception e)
    {
        System.out.println("createFileShare exception: " + e.getMessage());
        return false;
    }
}

首先,您应该创建一个Azure存储帐户

并将其粘贴到代码中。例如:

AccountName=myazurestorageaccount;
AccountKey=87D2A2E999180C4A624E1A8153CEBD6;
创建Azure存储帐户时,获取AccountKey(如下面链接中所述)

并将其粘贴到代码中。例如:

AccountName=myazurestorageaccount;
AccountKey=87D2A2E999180C4A624E1A8153CEBD6;
Java ShareClientBuilder文档描述了使用连接字符串实例化共享客户端。

在这种情况下,您应该附加“EndpointSuffix=core.windows.net”;连接到您的连接

public static final String connectStr = 
    "DefaultEndpointsProtocol=https;" +
            "AccountName=my-provided-accountname;" +
            "AccountKey=87D2A2E999180C4A624E1A8153CEBD6;" + "EndpointSuffix=core.windows.net";

结果是Azure不喜欢我用作文件名的camelCase。将其更改为以下操作:

 createFileShare(connectStr,"hellishheat");

你们有那个教程的英文链接吗?我提供了一个链接,也许教程这个词太强了。点击上面的“这个”,我的坏;我在德国,chrome自动把我带到了英国。我实际上没有使用Azure文件存储,但我希望URL是
https://.file.core.windows.net/
,而不仅仅是
.core
索引8处的权限中的非法字符:。{core.windows.net}我更新了我的答案。端点后缀应不带括号。EndpointSuffix=core.windows.netI删除了这些括号,但仍然:createFileShare异常:java.net.UnknownHostException:在两次查询后未能解析“我的帐户名.file.core.windows.net”。您确定您的存储帐户名为“我的帐户名”吗?Azure存储帐户名只能包含小写字母和数字。我已编辑了该问题,以指出我没有存储帐户。嗯