个人项目复习-云盘Day03

news2026/3/16 17:39:19
考点13大文件上传需求和常见问题普遍需求在云存储、视频分享、在线教育等领域用户上传大文件的需求日益普遍。核心挑战网络波动、不稳定性及客户端资源限制常给用户带来不佳体验传统整文件上传易因中断失败还会占用大量内存和宽带资源对用户设备和服务器造成负担。网络中断风险上传过程中网络不稳定或意外中断会导致整个上传任务失败用户需从头重新上传浪费时间和宽带。客户端资源消耗大文件上传会占用大量内存和宽带资源尤其在低配设备如移动设备上容易导致设备卡顿或资源耗尽。服务器负担若无有效的分片管理和断点续传机制大文件上传失败后服务器会存储许多不完整或重复的文件浪费存储资源并增加维护难度。用户体验不佳上传过程中缺乏实时反馈如进度条或因频繁失败而无法继续上传会严重影响用户的满意度和使用意愿。考点14大文件上传常见解决方案文件分片将大文件切成多个小的分片每个分片单独上传到服务器。此方式可提高上传的可靠性和效率尤其在网络环境不稳定时。分片的标识与管理为每个分片分配唯一标识如索引或哈希值以便前后端协作追踪上传状态和重建文件。分片大小的选择策略分片大小的选择需综合考虑网络条件、文件大小和服务器性能。通常分片大小在几 MB 到几十 MB 之间较为合适。分片文件合并文件上传到服务器临时存储空间等待全部分片上传完成后进行合并以生成最终文件。考点15断点续传分片上传的剩余风险网络中断风险上传过程中网络不稳定或意外中断仍可能导致整个文件上传失败用户需从头上传浪费时间和带宽。用户体验不佳上传过程缺乏实时反馈或因频繁失败无法继续严重影响用户满意度。断点续传的定义是一种在数据传输过程中若发送中断或失败可从中断位置继续传输的技术。避免从头重新传输文件节省时间、宽带和资源广泛应用于文件传输和下载以提高可靠性和效率。工作原理记录传输状态在数据传输过程中系统记录已成功传输的数据量或位置。避免从头重新传输节省时间、带宽和资源广泛应用于文件传输和下载以提高可靠性和效率。中断检测当数据传输中断时系统会检测到该情况并保存当前传输状态。中断可能由网络问题、客户端或服务器故障等原因引起。恢复传输传输恢复时系统读取之前保存的状态信息从中断点开始传输未完成的数据。减少重复传输部分提高传输效率。数据完整性校验为确保数据完整性客户端在恢复传输时可能进行数据校验如 MD5 校验确保已传输数据未损坏。大文件上传中断后的实现步骤文件分片将大文件分割成多个固定大小的片段如 2MB。上传请求客户端逐个发送片段上传请求附带片段和文件唯一标识。状态记录服务端接收片段记录上传状态到数据库。断点检测上传中断后客户端查询服务器已上传片段状态需查询已上传数据。续传处理从最后一个成功上传的片段继续上传剩余片段。文件合并所有片段上传完成后服务器合并片段生成完整文件。考点16大文件上传的交互流程前端传到服务器服务器再传到 Minio优点集中管理所有文件上传操作通过后端集中管理便于实现身份验证、权限控制、文件处理等业务逻辑。例如可在文件上传到 Minio 之前生成缩减图或提取元数据。安全性后端可作为中间层对上传文件进行安全检查和过滤防止恶意文件上传到 Minio。业务扩展逻辑可在文件上传过程中加入更多业务逻辑如文件内容预处理、格式转换。缺点性能压力后端服务器需处理文件中转增加服务器负载和响应时间。尤其对于大文件后端需先接收文件再传输到 Minio会显著增加延迟。单点故障若后端服务端出现故障整个文件上传流程将受影响即使 Minio 正常也无法完成上传。资源占用后端服务器需额外资源处理文件在高并发下易导致服务器资源紧张。前端直接传到 Minio优点减少延迟:前端直接上传文件到Minio,减少了文件在后端的中转时间,显著提高了上传效率减轻后端压力:后端服务器不需要处理文件的中转, 可以专注业务逻辑处理,减少服务器的负载高可用性:即使后端服务器出现故障,只要Minio服务器正常运行, 文件上传仍可以继续进行,提高了系统的高可用性缺点安全性前端直接上传到Minio,需要生成并返回一个有效事情的凭证增加了安全风险,需要确保上传凭证的安全性,防止被恶意利用权限控制虽然可以通过上传凭证实现一定程度的权限控制,但是相比后端集中管理,权限控制的灵活性和安全性可能会稍落业务逻辑限制前端直接上传文件到Minio, 后端无法在文件上传过程中加入复制的业务逻辑, 如文件内容的预处理, 格式转换等考点17大文件上传选择大文件分片上传基本原理文件上传: 将客户端的文件通过HTTP协议上传到服务器,并在服务器进行运行分片上传: 将大文件拆分为多个小模块,逐一上传,最后在服务器端进行整合前端实现使用HTML5的File API 和Blob 对象来读取文件并分割成小块使用AJAX技术将文件分块发送给后端,也可以采用其他方式优缺点对比原生方法:后端实现:使用javxa.servlet和javax.servlet.http 包中的类来处理文件上传获取request 对象中的文件夹, 通过getInputStream() 方法获取输入流, 将文件内容写入服务器上的位置优点灵活度高: 可以根据具体需求进行定制,列如断点续传,文件读取,分块,传输,合并缺点复杂度高: 需要手动处理文件的分块,传输,合并,代码复制度较高使用AWS-S3的API后端实现aws-java-sdk-s3 已经封装了相关API,直接调用即可包括初始化上传任务,查询已经传输的分片,获取临时上传的预签名地址,合并分片文件等相关API优点开发效率高: SDK提供了丰富的API, 简化了大文件上传的开发过程,利用现场的解决方法,具有良好的兼容性和稳定性缺点学习曲线: 需要学习AWS S3的API 和相关概念, 有一定的学习成本相关API//大文件分片上传相关接口 /** * 查询分片数据 * param bucketName 存储桶名称 * param objectKey 对象名称 * param uploadId 分片上传ID * return 分片列表对象 */ PartListing listMultipart(String bucketName, String objectKey, String uploadId); /** * 1-初始化分片上传任务,获取uploadId,如果初始化时有 uploadId说明是断点续传不能重新生成 uploadId * param bucketName 存储桶名称 * param objectKey 对象名称 * param metadata 对象元数据 * return 初始化分片上传结果对象包含uploadId等信息 */ InitiateMultipartUploadResult initMultipartUploadTask(String bucketName, String objectKey, ObjectMetadata metadata); /** * 2-生成分片上传地址返回给前端 * param bucketName 存储桶名称 * param objectKey 对象名称 * param httpMethod HTTP方法如GET、PUT等 * param expiration 签名过期时间 * param params 签名中包含的参数 * return 生成的预签名URL */ URL genePreSignedUrl(String bucketName, String objectKey, HttpMethod httpMethod, Date expiration, MapString,Object params); /** * 3-合并分片 * param bucketName 存储桶名称 * param objectKey 对象名称 * param uploadId 分片上传ID * param partETags 分片ETag列表用于验证分片的完整性 * return 完成分片上传结果对象 */ CompleteMultipartUploadResult mergeChunks(String bucketName, String objectKey, String uploadId, ListPartETag partETags);}考点18查看别人分享怎么开发需求通过别人分享的文件链接,查看对应分享的文件 (要先登录自己的网盘才可以)选择部分或全部分享文件, 或进入对应的文件夹, 转存到自己的网盘前后端交互逻辑和解决方案用户点击分享链接一般调用后台基本分享信息接口GET /api/share/v1/visit?shareTokenXXXX上述接口会返回基本分享信息包括是否需要提取码、分享人信息等前端根据返回的基本分享信息是否需要提取码分两个情况情况一免提取码基本分享信息里面带有 token请求头携带过去即可直接使用访问对应的分享文件调用GET /api/share/v1/detail接口访问短链之后进入文件列表情况二需要提取码基本分享信息里面无 token先进入提取码界面可以看到分享人信息输入提取码校验成功则后端会返回 token请求头携带过去即可直接使用访问对应的分享文件调用GET /api/share/v1/detail接口访问短链之后进入文件列表进入分享文件的子文件则统一调用接口GET /api/share/v1/list_share_file需要携带 token考点19自定义注解的基础知识起源JDK 1.5 引入用于补充元数据MetaData替代传统配置文件。作用代码里的特殊标记常见如Override重写、Deprecated废弃等。元注解作用说明关键属性 / 值Target限定注解可作用的目标位置取值为 ElementType 枚举如- METHOD作用于方法- TYPE作用于类 / 接口- FIELD作用于属性- CONSTRUCTOR作用于构造器Retention控制注解保留周期编译 / 运行阶段取值为 RetentionPolicy 枚举如- RUNTIME保留到运行时可反射获取常用- CLASS保留到字节码- SOURCE仅源码保留Documented生成 Javadoc 时包含此注解无额外属性标记用Inherited允许子类继承父类的注解无额外属性标记用语法声明格式public interface 注解名 { ... }自动继承Annotation接口。支持默认值通过default关键字设置参数默认值如String value() default 默认值;。反射获取运行时可通过反射 API如Method.getAnnotation()读取注解信息。考点20Aop相关知识核心思想分离 “业务逻辑” 与 “横切逻辑”如token校验不入侵原有代码通过切面Aspect统一处理。关键流程标记需校验的接口在 Controller 方法上添加自定义注解如CheckToken。定义切面Aspect用Aspect标记切面类通过Pointcut关联自定义注解如annotation(自定义注解全类名)。在Before/Around通知中实现token校验逻辑解析token、关联分享ID等。执行流程请求进入Controller时AOP 拦截注解标记的方法先执行切面逻辑再走原有业务Service → Mapper → 数据库。考点21回收站是怎么设计的需求说明回收站文件再手动操作删除的文件彻底删除回收站文件执行后原文件不可恢复用户可以从回收站中恢复误删的文件或文件夹恢复到原来的位置。支持批量恢复操作提高用户操作效率注意彻底删除文件是指删除关联关系实际物理存储数据不删除不清空物理存储内容方便做分析和后续有人重新上传考点22推理大模型和指令大模型怎么选择对比维度指令大模型推理大模型核心能力执行明确指令解决复杂逻辑 / 数学问题适用场景客服对话、文案生成、API 文档异常分析、财务解读、病症鉴别输出特点流畅自然严谨、含推导步骤资源消耗轻量可部署小参数模型需大参数支持消耗高典型错误偏离指令、生成无关内容逻辑漏洞、计算错误选择核心原则任务复杂度简单指令→通用模型深度推理→专用模型。容错成本高风险场景医疗 / 金融优先选可解释性强的推理模型。混合策略前端用指令模型交互后端用推理模型处理复杂任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2416677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…