diff --git a/clearml/backend_interface/task/task.py b/clearml/backend_interface/task/task.py index d0a0e8d5..c648224a 100644 --- a/clearml/backend_interface/task/task.py +++ b/clearml/backend_interface/task/task.py @@ -654,10 +654,12 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin): return a_name return "{}.{}".format(a_name[: max(2, max_length - len(uuid) - 1)], uuid) + project_name = self.get_project_name() or "unknown" + return "/".join( quote(x, safe="'[]{}()$^,.; -_+-=/") for x in ( - limit_folder_name(self.get_project_name(), str(self.project), 256, False), + limit_folder_name(project_name, str(self.project), 256, False), limit_folder_name(self.name, str(self.data.id), 128, True), extra_path, ) diff --git a/clearml/binding/artifacts.py b/clearml/binding/artifacts.py index 4b69d697..71467f51 100644 --- a/clearml/binding/artifacts.py +++ b/clearml/binding/artifacts.py @@ -1155,15 +1155,16 @@ class Artifacts(object): return self._temp_folder[0] def _get_storage_uri_prefix(self) -> str: + project_name = self._task.get_project_name() or "unknown" if ( not self._storage_prefix or self._task_name != self._task.name - or self._project_name != self._task.get_project_name() + or self._project_name != project_name ): # noinspection PyProtectedMember self._storage_prefix = self._task._get_output_destination_suffix() self._task_name = self._task.name - self._project_name = self._task.get_project_name() + self._project_name = project_name return self._storage_prefix def _store_compressed_pd_csv(