From d98e104dc59530237b2b8b9705e6d05bfe8995d7 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 28 Jan 2026 14:28:12 -0800 Subject: [PATCH] s3tables: align ARN regex patterns with S3 standards and refactor to constants --- weed/s3api/s3tables/utils.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/weed/s3api/s3tables/utils.go b/weed/s3api/s3tables/utils.go index 0d3a91bce..c1194c63e 100644 --- a/weed/s3api/s3tables/utils.go +++ b/weed/s3api/s3tables/utils.go @@ -11,10 +11,15 @@ import ( "time" ) +const ( + bucketNamePatternStr = `[a-z0-9-]+` + tableNamespacePatternStr = `[a-z0-9_-]+` +) + var ( - bucketARNPattern = regexp.MustCompile(`^arn:aws:s3tables:[^:]*:[^:]*:bucket/([a-z0-9_-]+)$`) - tableARNPattern = regexp.MustCompile(`^arn:aws:s3tables:[^:]*:[^:]*:bucket/([a-z0-9_-]+)/table/([a-z0-9_-]+)/([a-z0-9_-]+)$`) - bucketNamePattern = regexp.MustCompile(`^[a-z0-9_-]+$`) + bucketARNPattern = regexp.MustCompile(`^arn:aws:s3tables:[^:]*:[^:]*:bucket/(` + bucketNamePatternStr + `)$`) + tableARNPattern = regexp.MustCompile(`^arn:aws:s3tables:[^:]*:[^:]*:bucket/(` + bucketNamePatternStr + `)/table/(` + tableNamespacePatternStr + `)/(` + tableNamespacePatternStr + `)$`) + bucketNamePattern = regexp.MustCompile(`^` + bucketNamePatternStr + `$`) ) // ARN parsing functions