siliconflow / BizyAir

BizyAir: Comfy Nodes that can run in any environment.
https://siliconflow.github.io/BizyAir/
MIT License
391 stars 20 forks source link

[FEATURE REQUEST] 模型前端直传 OSS #241

Open KwokKwok opened 4 days ago

KwokKwok commented 4 days ago

目前从 dev_bbs 拉取了分支 https://github.com/KwokKwok/BizyAir/tree/dev_bbs_model_upload

提交:https://github.com/KwokKwok/BizyAir/commit/eaac0d9e5451f8900bdb373f7c27992c1aa54f7e


大体流程:

一、serve 实现 get_upload_token() 函数,获取签名等

二、views/btnModel 下新增 uploader.vue 组件,内部处理文件选取、上传、进度等逻辑

  1. 支持配置分片上传的 chunkSize (默认 1M) 等
  2. 暴露 startUpload() 方法,该方法返回 OSS 响应。调用后,会进行校验,并开始分片上传,上传过程中会不断更新进度,并展示取消上传按钮。

三、views/btnModel/index.vue 中为每一个 version 使用 uploader 组件。在点击 Publish 按钮的 submit() 函数中,循环调用各 uploaderstartUpload() 函数。目前会打印出 oss路径、oss响应、version 信息。后续可以调用一个接口对数据进行处理,可处理单个 version 或等待所有 version 都上传完成后同时进行处理。


前端上传需要处理的问题:

  1. OSS bucket 跨域要配置为 *。跨域仅为浏览器端的安全策略,oss 安全不应依赖该策略。也有较多手段可以绕过该策略。
  2. OSS 大文件分片上传,可能出现上传中断,需要配置未合并分片自动清理的策略,参考文档
KwokKwok commented 4 days ago

调试时暂时也可以使用关闭跨域校验的浏览器,Mac 端命令如:

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/{your_user_name}/Documents/ChromeDevData
doombeaker commented 4 days ago

感谢 issue,我们正在把前端 UI 独立成仓库:https://github.com/siliconflow/bizyair_frontend 作为 submodule 在 BizyAir/bizyair_frontend 仓库使用

可以关注下我们前端的变化