StorageConnectionStringBuilder.java
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.microsoft.azure.spring.cloud.context.core.storage;
import com.microsoft.azure.AzureEnvironment;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class StorageConnectionStringBuilder {
private static final String HTTP = "http";
private static final String HTTPS = "https";
private static final String DEFAULT_PROTOCOL = "DefaultEndpointsProtocol";
private static final String ACCOUNT_NAME = "AccountName";
private static final String ACCOUNT_KEY = "AccountKey";
private static final String ENDPOINT_SUFFIX = "EndpointSuffix";
private static final String SEPARATOR = ";";
public static String build(String accountName, String accountKey, AzureEnvironment environment, boolean
isSecureTransfer) {
Map<String, String> map = new HashMap<>();
map.put(DEFAULT_PROTOCOL, resolveProtocol(isSecureTransfer));
map.put(ACCOUNT_NAME, accountName);
map.put(ACCOUNT_KEY, accountKey);
// Remove starting dot since AzureEnvironment.storageEndpointSuffix() starts with dot
map.put(ENDPOINT_SUFFIX, environment.storageEndpointSuffix().substring(1));
return map.entrySet().stream().map(Object::toString).collect(Collectors.joining(SEPARATOR));
}
public static String build(String accountName, String accountKey, AzureEnvironment environment) {
return build(accountName, accountKey, environment, true);
}
private static String resolveProtocol(boolean isSecureTransfer) {
return isSecureTransfer ? HTTPS : HTTP;
}
}