package utils

import (
	"net/url"
	"strings"

	"github.com/pingcap/errors"
)

func JoinStorageURIWithSubDir(storageURI string, subDir string) (string, error) {
	uri, err := url.Parse(storageURI)
	if err != nil {
		return "", errors.Annotate(err, "parse storage uri")
	}
	basePath := strings.TrimSuffix(uri.Path, "/")
	cleanSubDir := strings.TrimLeft(subDir, "/")
	uri.Path = basePath + "/" + cleanSubDir
	return uri.String(), nil
}
