fix(api): simplify parameters in get_signed_file_url_for_plugin function (#25866)

This commit is contained in:
QuantumGhost 2025-09-17 23:53:42 +08:00 committed by GitHub
commit 0d66007ce9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 4 additions and 14 deletions

View File

@ -420,13 +420,7 @@ class PluginUploadFileRequestApi(Resource):
)
def post(self, user_model: Account | EndUser, tenant_model: Tenant, payload: RequestRequestUploadFile):
# generate signed url
url = get_signed_file_url_for_plugin(
payload.filename,
payload.mimetype,
tenant_model.id,
user_model.id,
user_model.session_id if isinstance(user_model, EndUser) else None,
)
url = get_signed_file_url_for_plugin(filename=payload.filename, mimetype=payload.mimetype, tenant_id=tenant_model.id, user_id=user_model.id)
return BaseBackwardsInvocationResponse(data={"url": url}).model_dump()

View File

@ -25,9 +25,7 @@ def get_signed_file_url(upload_file_id: str, as_attachment=False) -> str:
return f"{url}?{query_string}"
def get_signed_file_url_for_plugin(
filename: str, mimetype: str, tenant_id: str, user_id: str, session_id: str | None
) -> str:
def get_signed_file_url_for_plugin(filename: str, mimetype: str, tenant_id: str, user_id: str) -> str:
# Plugin access should use internal URL for Docker network communication
base_url = dify_config.INTERNAL_FILES_URL or dify_config.FILES_URL
url = f"{base_url}/files/upload/for-plugin"
@ -37,9 +35,7 @@ def get_signed_file_url_for_plugin(
msg = f"upload|{filename}|{mimetype}|{tenant_id}|{user_id}|{timestamp}|{nonce}"
sign = hmac.new(key, msg.encode(), hashlib.sha256).digest()
encoded_sign = base64.urlsafe_b64encode(sign).decode()
url_user_id = session_id or user_id
return f"{url}?timestamp={timestamp}&nonce={nonce}&sign={encoded_sign}&user_id={url_user_id}&tenant_id={tenant_id}"
return f"{url}?timestamp={timestamp}&nonce={nonce}&sign={encoded_sign}&user_id={user_id}&tenant_id={tenant_id}"
def verify_plugin_file_signature(

View File

@ -291,7 +291,7 @@ class SQLAlchemyWorkflowNodeExecutionRepository(WorkflowNodeExecutionRepository)
return None
value_json = _deterministic_json_dump(json_encodable_value)
assert value_json is not None, "value_json should be None here."
assert value_json is not None, "value_json should be not None here."
suffix = type_.value
upload_file = self._file_service.upload_file(