国产化环境下大文件传输方案设计与实现
在医疗、科研及政务等涉及大量数据交换的场景中,大文件传输的稳定性与兼容性一直是技术难点。特别是在信创(信息技术应用创新)环境下,面对不同的 CPU 架构、操作系统以及浏览器内核,传统的上传方案往往会出现卡顿、中断或兼容性问题。
本文分享一套基于 Vue3 + TypeScript 前端配合 .NET Core 后端的完整解决方案,重点解决分片上传、断点续传、跨浏览器适配及国产化环境下的性能优化问题。
一、核心架构设计
我们采用了前后端分离的模块化架构,核心目标是确保在弱网或复杂网络环境下的传输可靠性。
- 前端层:使用 Vue3 构建组件化界面,利用 TypeScript 保证类型安全,通过 IndexedDB 存储传输状态。
- 后端层:基于 .NET Core 提供 RESTful API,支持多算法加密(SM4/AES)及多种云存储适配。
- 适配层:针对 ARM/MIPS/x86 等不同架构进行逻辑统一,并深度集成华为云 OBS 等信创版本 SDK。
注意:在信创环境中,浏览器内核差异较大,部分旧版浏览器可能不支持标准 HTML5 特性,需要降级处理。
二、前端关键模块实现
1. 跨浏览器文件选择器
为了兼容不同浏览器的文件选择行为,我们需要封装一个统一的接口。对于现代浏览器使用标准 Input,而对于特定国产浏览器可能需要通过扩展桥接。
import { defineComponent, ref } from 'vue';
import { BrowserDetector } from './browser-detector';
export default defineComponent({
setup() {
const standardInput = ref<HTMLInputElement>();
// 检测是否为老旧或特殊浏览器
const isLegacyBrowser = BrowserDetector.isIE8();
const isTrustedBrowser = BrowserDetector.isTrustedBrowser();
const handleStandardFileChange = (e: Event) => {
const files = (e.target as HTMLInputElement).;
(files) (.(files));
};
. = {
};
{ standardInput, isLegacyBrowser };
}
});

