private static String replaceChars(String value, String fromChars,
            String toChars) {
        var builder = new StringBuilder(/*capacity=*/ value.length());
        for (int i = 0; i < value.length(); ++i) {
            for (int j = 0; j < fromChars.length(); ++j) {
                builder.append(value.charAt(i) == fromChars.charAt(j) ?
                        toChars.charAt(j) : value.charAt(i));
            }
        }
        return builder.toString();
    }
BlobStore which maps user metadata keys and values using character
replacement.  This is useful for some object stores like Azure which do not
allow characters like hyphens.  This munges keys and values during putBlob
and unmunges them on getBlob.
src/main/java/org/gaul/s3proxy/UserMetadataReplacerBlobStore.java