Hi Yifan,
On 2025/9/30 16:40, Yifan Zhao wrote:
From: zhaoyifan <[email protected]>
`mkfs.erofs` failed to generate image from Huawei OBS with the following
command:
mkfs.erofs --s3=<endpoint>,urlstyle=vhost,sig=2 s3.erofs test-bucket
because it mistakenly generated a url with repeated '/':
https://test-bucket.<endpoint>//<keyname>
In fact, the splitting of bucket name and path has already been performed prior
to the call to `s3erofs_prepare_url`, and this function does not need to handle
this logic. This patch simplifies this part accordingly and fixes the problem.
Fixes: 29728ba8f6f6 ("erofs-utils: mkfs: support EROFS meta-only image generation
from S3")
Signed-off-by: Yifan Zhao <[email protected]>
---
lib/remotes/s3.c | 35 ++++++++++-------------------------
1 file changed, 10 insertions(+), 25 deletions(-)
diff --git a/lib/remotes/s3.c b/lib/remotes/s3.c
index 2e7763e..2bd5322 100644
--- a/lib/remotes/s3.c
+++ b/lib/remotes/s3.c
@@ -41,17 +41,16 @@ struct s3erofs_curl_request {
static int s3erofs_prepare_url(struct s3erofs_curl_request *req,
const char *endpoint,
- const char *path, const char *key,
I really think we should at least add a unittest for this.
you could simply add
#ifdef TEST
int main(int argc, char argv[])
{
testfunc1(); // and use assert() if test fails
testfunc2();
}
#endif
and use gcc -o s3_test -Iinclude -lcurl lib/remote/s3.c to generate a test
program.
Thanks,
Gao Xiang