开发者社区 问答 正文

multipart上传的tmp文件,在没有complete之前,能获取吗?怎么获取?

我现在有一种使用场景,使用multipart接口上传流,上传过程中,需要去获取已经上传的数据,这种操作在对象存储上可以实现吗?

展开
收起
游客46kpnza55q5d2 2021-11-08 13:02:46 422 分享 版权
阿里云 AI 助理回答

阿里云对象存储(OSS)提供了分块上传的功能,可以满足您在上传大文件时的特殊需求,比如断点续传和获取已上传数据块的信息。不过,直接通过流式上传(multipart接口)过程中实时获取已上传部分的数据内容,这不是OSS标准API的直接功能。

分块上传的基本流程是这样的: 1. 初始化一个分块上传任务,OSS会返回一个upload ID。 2. 按需上传数据块(part),每个part都是文件的一部分。 3. 上传所有part后,调用Complete Multipart Upload API,提供所有part的信息和upload ID,OSS会将这些part合并成一个完整的文件。

虽然OSS本身不直接支持在上传过程中直接访问已上传的分块数据内容,但您可以通过以下方式间接实现您的需求:

  • 记录和管理已上传Part信息:在上传每一个part时,您可以自己保存或更新这些part的元数据(如part编号、ETag等),这样就可以知道哪些部分已经上传完成。
  • 下载已上传的Part进行检查或使用:如果您需要查看或临时使用某个已上传的part,可以通过其Part Number和Upload ID使用Get Object API结合Range请求头来尝试获取特定范围的数据。但这通常不是为了直接操作已上传数据,而是验证或临时处理之用。

请注意,这种方式并不是直接从OSS接口获取“已上传数据”的状态或内容,更多是一种基于业务逻辑的处理方式。对于需要高度交互性或即时反馈上传进度及内容的应用场景,可能还需要结合其他服务(如消息队列、数据库记录状态等)来辅助实现。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: