mirror of
https://github.com/clearml/clearml
synced 2025-06-26 18:16:07 +00:00
handle scenarios of local file upload without file:// scheme. Fetch the absolute path for the file in such cases and use it as source url
This commit is contained in:
parent
f53326faba
commit
03d2f808b3
@ -3350,6 +3350,8 @@ class Dataset(object):
|
||||
# noinspection PyBroadException
|
||||
try:
|
||||
if StorageManager.exists_file(source_url):
|
||||
# handle local path provided without scheme
|
||||
source_url = StorageHelper.sanitize_url(source_url)
|
||||
remote_objects = [StorageManager.get_metadata(source_url, return_full_path=True)]
|
||||
elif not source_url.startswith(("http://", "https://")):
|
||||
if source_url[-1] != "/":
|
||||
@ -3368,7 +3370,7 @@ class Dataset(object):
|
||||
link = remote_object.get("name")
|
||||
relative_path = link[len(source_url):]
|
||||
if not relative_path:
|
||||
relative_path = source_url.split("/")[-1]
|
||||
relative_path = os.path.basename(source_url)
|
||||
if not matches_any_wildcard(relative_path, wildcard, recursive=recursive):
|
||||
continue
|
||||
try:
|
||||
|
@ -3067,6 +3067,14 @@ class StorageHelper(object):
|
||||
return self._driver.exists_file(
|
||||
container_name=self._container.name if self._container else "", object_name=object_name
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def sanitize_url(cls, remote_url):
|
||||
base_url = cls._resolve_base_url(remote_url)
|
||||
if base_url != 'file://':
|
||||
return remote_url
|
||||
absoulte_path = os.path.abspath(remote_url)
|
||||
return base_url + absoulte_path
|
||||
|
||||
|
||||
def normalize_local_path(local_path):
|
||||
|
Loading…
Reference in New Issue
Block a user