diff --git a/api/controllers/console/app/workflow_draft_variable.py b/api/controllers/console/app/workflow_draft_variable.py index fbaa2f8f0b..5c3211ff41 100644 --- a/api/controllers/console/app/workflow_draft_variable.py +++ b/api/controllers/console/app/workflow_draft_variable.py @@ -252,7 +252,7 @@ class WorkflowVariableCollectionApi(Resource): def delete(self, app_model: App): # FIXME(Mairuis): move to SandboxArtifactService current_user, _ = current_account_with_tenant() - SandboxManager.delete_storage(app_model.tenant_id, current_user.id) + SandboxManager.delete_draft_storage(app_model.tenant_id, current_user.id) draft_var_srv = WorkflowDraftVariableService( session=db.session(), ) diff --git a/api/core/sandbox/manager.py b/api/core/sandbox/manager.py index 5a0881e46f..6716c9bdcb 100644 --- a/api/core/sandbox/manager.py +++ b/api/core/sandbox/manager.py @@ -136,8 +136,7 @@ class SandboxManager: return sandbox @classmethod - def delete_storage(cls, tenant_id: str, user_id: str) -> None: - # FIXME(Mairuis): move to SandboxArtifactService + def delete_draft_storage(cls, tenant_id: str, user_id: str) -> None: storage = ArchiveSandboxStorage(tenant_id, SandboxBuilder.draft_id(user_id)) storage.delete() diff --git a/api/core/sandbox/services/asset_download_service.py b/api/core/sandbox/services/asset_download_service.py index 56fbd580b9..138c5e551f 100644 --- a/api/core/sandbox/services/asset_download_service.py +++ b/api/core/sandbox/services/asset_download_service.py @@ -38,7 +38,7 @@ def _render_download_script(root_path: str, download_commands: str) -> str: download_one() {{ file_path="$1" url="$2" - dest="${{download_root}}${{file_path}}" + dest="${{download_root}}/${{file_path}}" mkdir -p "$(dirname "${{dest}}")" eval "${{download_cmd}}" || echo "${{file_path}}" >> "${{fail_log}}" }} diff --git a/api/core/sandbox/storage/archive_storage.py b/api/core/sandbox/storage/archive_storage.py index b0c124a2dd..f7a74f515f 100644 --- a/api/core/sandbox/storage/archive_storage.py +++ b/api/core/sandbox/storage/archive_storage.py @@ -87,6 +87,8 @@ class ArchiveSandboxStorage(SandboxStorage): return storage.exists(self._storage_key) def delete(self) -> None: - if self.exists(): + try: storage.delete(self._storage_key) logger.info("Deleted archive for sandbox %s", self._sandbox_id) + except Exception: + logger.exception("Failed to delete archive for sandbox %s", self._sandbox_id)