From d4c6b46f95138e006dd12bed0bbfe1cff0d73a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Sampedro?= Date: Wed, 1 Feb 2023 15:15:05 +0100 Subject: [PATCH] Created Middleware regex (markdown) --- Middleware-regex.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Middleware-regex.md diff --git a/Middleware-regex.md b/Middleware-regex.md new file mode 100644 index 0000000..8e9cc2b --- /dev/null +++ b/Middleware-regex.md @@ -0,0 +1,37 @@ +## WIP (pending PR#495) + +S3Proxy can use regex to rename blobs before they are uploaded to the backend. The regex middleware is configured as: + +``` +s3proxy.regex-blobstore.match. = +s3proxy.regex-blobstore.replace. = + + .... [snip] .... + +s3proxy.regex-blobstore.match. = +s3proxy.regex-blobstore.replace. = +``` + +You can use multiple regex, and they are evaluated in order. The first regex that matches breaks the evaluation. +Each regex match config MUST be accompanied by its replace rule. + +For example, the following rule: + +``` +s3proxy.regex-blobstore.match.type_partition=^prefix/(\\w+)/(\\d{4})/(\\d{2})/(\\d{2})/(.*)$ +s3proxy.regex-blobstore.replace.type_partition=prefix/date=$2-$3-$4/type=$1/$5 +``` + +will rewrite blob name from: + +``` +prefix/test/2023/01/01/test.txt +``` + +to: + +``` +prefix/date=2023-01-01/type=test/test.txt +``` + +**NOTE:** Note that the match expression must be in escaped string format so, for example, in order to match a digit, you need to escape the backslash (e.g. use \\d NOT \d). \ No newline at end of file