具有自定义端点后缀的Azure云存储帐户

具有自定义端点后缀的Azure云存储帐户,azure,cloud,azure-storage,azure-storage-blobs,azure-gov,Azure,Cloud,Azure Storage,Azure Storage Blobs,Azure Gov,想象一下,我们有2个Azure存储帐户,其中一个是普通帐户,另一个是政府帐户(或德国、中国等)。 下面是我们创建CloudBlobClient的方法: private const string ConnectionStringTemplate = "DefaultEndpointsProtocol={0};AccountName={1};AccountKey={2};"; public static CloudBlobClient Create(string protocol,

想象一下,我们有2个Azure存储帐户,其中一个是普通帐户,另一个是政府帐户(或德国、中国等)。 下面是我们创建CloudBlobClient的方法:

    private const string ConnectionStringTemplate = "DefaultEndpointsProtocol={0};AccountName={1};AccountKey={2};";

    public static CloudBlobClient Create(string protocol, string accountName, string accountKey)
    {
        var connectionString = string.Format(CultureInfo.InvariantCulture, ConnectionStringTemplate, protocol, accountName, accountKey);
        var account = CloudStorageAccount.Parse(connectionString);

        return account.CreateCloudBlobClient();
    }
该代码对普通账户有效,但对政府账户无效。我们应该指定EndpointSuffix(core.usgovcloudapi.net而不是默认的core.windows.net),连接字符串应该如下所示:

"DefaultEndpointsProtocol={0};AccountName={1};AccountKey={2};EndpointSuffix={3}";
所以,问题是,如果只有AccountName和AccountKey,我如何知道哪个帐户是?是否有一些API方法来检查它们的帐户类型或端点后缀

所以,问题是,如果只有一个帐户,我怎么知道它是哪个帐户 AccountName和AccountKey?是否有一些API方法来检查帐户 它们的类型或端点后缀

到今天为止,还没有API可以做到这一点。您可以做的一件事是使用您拥有的信息创建
CloudStorageAccount
的实例,并尝试列出blob容器

假设存在具有该名称的存储帐户,并且如果帐户名称/密钥组合正确,则应该能够看到blob容器列表。如果帐户名/密钥组合不正确,则存储服务将返回403错误

由于您的目的只是检查帐户名/密钥组合,因此可以要求存储服务仅返回1个blob容器,以减少响应数据并加快操作

所以,问题是,如果只有一个帐户,我怎么知道它是哪个帐户 AccountName和AccountKey?是否有一些API方法来检查帐户 它们的类型或端点后缀

到今天为止,还没有API可以做到这一点。您可以做的一件事是使用您拥有的信息创建
CloudStorageAccount
的实例,并尝试列出blob容器

假设存在具有该名称的存储帐户,并且如果帐户名称/密钥组合正确,则应该能够看到blob容器列表。如果帐户名/密钥组合不正确,则存储服务将返回403错误


由于您的目的只是检查帐户名/密钥组合,因此您可以要求存储服务仅返回1个blob容器,以减少响应数据并加快操作。

没有这样的API可以做到这一点,因为您的帐户跨不同的云,Azure API始终在一个云中提供服务。实际上,您甚至可以跨不同的云创建同名帐户。因此,您需要自己维护“帐户、云名称(公共Azure/China/Germany Gov)”映射:

没有这样的API可以做到这一点,因为您的帐户跨不同的云,Azure API始终在一个云中提供服务。实际上,您甚至可以跨不同的云创建同名帐户。因此,您需要自己维护“帐户、云名称(公共Azure/China/Germany Gov)”映射:

谢谢,我考虑过这种方法,但它看起来更像是一种变通方法。但如果没有其他方法,它可以:-)这确实是一个解决方法:)。我们还使用此方法测试帐户名/密钥组合在我们的产品中是否正确,因为没有可用的“验证连接”API(如SQL Server中的API)。谢谢,我考虑过此方法,但它看起来更像是解决方法。但如果没有其他方法,它可以:-)这确实是一个解决方法:)。我们还使用这种方法来测试帐户名/密钥组合在我们的产品中是否正确,因为没有可用的“验证连接”API(就像SQL Server中一样)。