@Override
    public String putBlob(String containerName, Blob blob,
            PutOptions putOptions) {
        String name = blob.getMetadata().getName();
        String newName = replaceBlobName(name);
        blob.getMetadata().setName(newName);

        logger.debug("Renaming blob name from {} to {}", name, newName);

        return super.putBlob(containerName, blob, putOptions);
    }
This class implements a middleware to apply regex to blob names.
The regex are configured as:
s3proxy.regex-blobstore.match.&lt;regex name&gt; = &lt;regex match
expression&gt;
s3proxy.regex-blobstore.replace.&lt;regex name&gt; = &lt;regex replace
expression&gt;

You can add multiple regex, they will be applied from the beginning to the
end,
stopping as soon as the first regex matches.
src/main/java/org/gaul/s3proxy/RegexBlobStore.java