提交 259337ca authored 作者: Chris Rienzo's avatar Chris Rienzo

mod_http_cache: fixed validation of S3 URL

上级 adcf3fb2
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
int aws_s3_is_s3_url(const char *url) int aws_s3_is_s3_url(const char *url)
{ {
/* AWS bucket naming rules are complex... this match only supports virtual hosting of buckets */ /* AWS bucket naming rules are complex... this match only supports virtual hosting of buckets */
return !zstr(url) && switch_regex_match(url, "^https?://\\w[\\w.]{1,61}\\w\\.s3([-\\w]+)?\\.amazonaws\\.com/.*$") == SWITCH_STATUS_SUCCESS; return !zstr(url) && switch_regex_match(url, "^https?://\\w[-\\w.]{1,61}\\w\\.s3([-\\w]+)?\\.amazonaws\\.com/.*$") == SWITCH_STATUS_SUCCESS;
} }
/** /**
......
...@@ -107,6 +107,10 @@ static void test_parse_url(void) ...@@ -107,6 +107,10 @@ static void test_parse_url(void)
aws_s3_parse_url(strdup("http://bucket.s3.amazonaws.com/voicemails/recording.wav"), &bucket, &object); aws_s3_parse_url(strdup("http://bucket.s3.amazonaws.com/voicemails/recording.wav"), &bucket, &object);
ASSERT_STRING_EQUALS("bucket", bucket); ASSERT_STRING_EQUALS("bucket", bucket);
ASSERT_STRING_EQUALS("voicemails/recording.wav", object); ASSERT_STRING_EQUALS("voicemails/recording.wav", object);
aws_s3_parse_url(strdup("https://my-bucket-with-dash.s3-us-west-2.amazonaws.com/greeting/file/1002/Lumino.mp3"), &bucket, &object);
ASSERT_STRING_EQUALS("my-bucket-with-dash", bucket);
ASSERT_STRING_EQUALS("greeting/file/1002/Lumino.mp3", object);
} }
/** /**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论