上传使用自定义名称

This commit is contained in:
18610128193
2026-06-25 10:58:14 +08:00
parent 3ae2fe8d01
commit 3c41f56ce5
3 changed files with 15 additions and 7 deletions
@@ -110,6 +110,7 @@ async def async_batch_upload_material(
target_source_model = source_model_map.get(task.source_model)
# 检查资源id是否存在,非资源id
if target_source_model:
query = (
select(GeneratedResource.id)
@@ -133,6 +134,7 @@ async def async_batch_upload_material(
resource_ids_to_upload = valid_resource_ids
else:
#用户提交的直接是资源id
query = (
select(GeneratedResource.id)
.where(GeneratedResource.id.in_(task.resource_ids))
@@ -7,7 +7,7 @@ from sqlalchemy.orm import aliased
from app.models.generated_resource import GeneratedResource
from app.models.resources_material import ResourcesMaterial
from app.schemas.resources_material import GeneratedResourceOut, ResourcesMaterialOut
from app.services.resource_signed_url_service import build_resource_signed_url
async def get_resources_material_list(
db: AsyncSession,
@@ -69,10 +69,8 @@ async def get_resources_material_list(
if generated_resource:
resource = GeneratedResourceOut(
file_name=generated_resource.file_name,
resource_url=generated_resource.resource_url,
remote_url=generated_resource.remote_url,
resource_url = build_resource_signed_url(generated_resource.resource_url) if generated_resource.resource_url else "",
storage_type=generated_resource.storage_type,
storage_path=generated_resource.storage_path,
file_size_bytes=generated_resource.file_size_bytes,
source_model=generated_resource.source_model,
source_model_module=generated_resource.source_model_module,
+11 -3
View File
@@ -217,9 +217,11 @@ async def _upload_single_material(
resource_id: str,
db=None
) -> dict:
own_db = False
if db is None:
from app.models.base import async_session
db = async_session()
own_db = True
try:
oauth = await db.execute(
@@ -253,6 +255,7 @@ async def _upload_single_material(
resource_type = resource.resource_type
storage_path = resource.storage_path
file_name = resource.file_name
if resource_type not in ["image", "video"]:
return {
@@ -267,10 +270,10 @@ async def _upload_single_material(
}
return await _upload_to_juliang(
oauth_id, storage_path, resource_type, advertiser_id, resource, db, user_id
oauth_id, storage_path, resource_type, advertiser_id, resource, db, user_id, file_name
)
finally:
if db is not None:
if own_db and db is not None:
await db.close()
@@ -282,8 +285,13 @@ async def _upload_to_juliang(
resource: GeneratedResource,
db,
current_user_id: str,
file_name: str,
) -> dict:
filename = os.path.basename(storage_path)
#如果file_name不等于空,那么就是用file_name,否则用storage_path的文件名
if file_name:
filename = file_name
else:
filename = os.path.basename(storage_path)
if resource_type == "image":
if resource.file_size_bytes > 5 * 1024 * 1024: