全部产品
Search
文档中心

对象存储 OSS:Go上传大文件

更新时间:Sep 27, 2024

为了提高大文件上传效率,OSS提供了两种大文件上传方法,分别是断点续传上传和分片上传。本文将概述这两种上传方法,并提供相关文档链接供进一步参考。

注意事项

传统的简单上传方法(如 PutObject)上传大文件会遇到以下问题:

  • 最大对象大小限制:OSS 对单个对象的大小有限制,超过5GB的文件无法通过简单的PutObject方法直接上传。尝试上传超过5GB的文件会导致操作失败。

  • 上传时间:上传大文件可能需要较长的时间,尤其是在较慢的网络连接下。长时间的传输容易受到网络波动的影响,可能导致传输中断或超时问题。

  • 内存消耗:上传大文件可能导致内存消耗增加,特别是在使用较小的内存配置或受限的环境中,这会影响系统的稳定性和性能。

因此,在处理大文件上传时,推荐使用断点续传上传或分片上传方法,以提高上传效率和可靠性。

断点续传

断点续传上传是一种高效的大文件上传方法,特别适用于网络连接不稳定或文件大小超过5GB的情况。这种方法自动将文件分割成多个较小的分片,并进行并发上传,整个过程无需用户干预。如果上传过程中发生中断,可以从最后一次成功的上传位置继续,避免了重新上传整个文件,从而显著提高了上传效率和可靠性。

分片上传

分片上传是一种常用的大文件上传方法,用户需要先将大文件手动分割成多个分片,然后使用分片上传系列接口进行上传。与断点续传上传相比,分片上传提供了更高的灵活性,允许用户在上传过程中动态调整分片大小,并且可以在中途取消分片上传任务。这种方法适用于需要更精细化控制上传过程的场景。

方法比较

特性

断点续传上传

分片上传

适用场景

希望简单快速即可完成大文件上传任务,不关注具体细节的用户

需要精细化控制且有技术能力的用户

并发上传

支持

支持

断点续传

支持,可以从断点处继续上传

不直接支持断点续传

分片大小

需要预设分片大小

可以动态调整分片大小

可靠性

高,减少因网络波动导致的上传失败

较高,但仍需手动处理断点

管理难度

低,只需调用一个UploadFile上传函数

高,需要调用InitiateMultipartUpload, UploadPart, CompleteMultipartUpload等函数

灵活性

一般,不支持精细化控制上传流程

高,支持手动控制上传流程,便于实时监控分片上传的活动

开发便利性

极高,只需调用一个上传函数即可完成大文件的上传

较低,需要手动对大文件进行分片,编写更多的控制逻辑调用多个接口完成分片上传,并且需要处理各种异常情况

相关文档

断点续传上传

分片上传