我尝试使用 Amazon S3 控制台上传大型文件。为什么上传会失败?

上次更新日期:2021 年 1 月 26 日

我尝试使用控制台将大型文件(1GB 或更大)上传到 Amazon Simple Storage Service (Amazon S3) 中。但是,上传持续失败,且我收到超时错误。如何解决此问题?

解决方法

对于大型文件,Amazon S3 可能会将文件拆分为多个上传进程以最大程度地提高上传速度。Amazon S3 控制台可能会因会话超时而在大型文件上传期间超时。您不应使用 Amazon S3 控制台,而应尝试使用 AWS 命令行界面 (AWS CLI) 或 AWS 开发工具包上传文件。

注意:如果您使用 Amazon S3 控制台,上传的最大文件大小为 160GB。要上传大于 160GB 的文件,请使用 AWS CLI、AWS 开发工具包或 Amazon S3 REST API。

AWS CLI

首先,安装配置 AWS CLI。确保使用 AWS Identity and Access Management (IAM) 用户或角色的凭证,配置 AWS CLI。IAM 用户或角色必须具有访问 Amazon S3 的正确权限

重要提示:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

要上传大型文件,请运行 cp 命令:

aws s3 cp cat.png s3://docexamplebucket

注意:文件必须位于您从中运行命令的目录。

当您运行高级 (aws s3) 命令,如 aws s3 cp 时,Amazon S3 会对大型对象自动执行多段上传。分段上传时,大型文件会拆分成多个部分并单独上传到 Amazon S3 中。上传所有部分后,Amazon S3 将各部分合并为一个文件。多段上传可能会加快上传速度并降低大型文件发生故障的几率。

有关多段上传的更多信息,请参阅如何使用 AWS CLI 将文件多段上传至 Amazon S3?

AWS 开发工具包

如需以可编程的方法上传大型文件,请使用 AWS 开发工具包,例如适用于 Java 的 AWS 开发工具包。有关示例操作,请参阅使用适用于 Java 的 AWS 开发工具包上传对象

注意:有关开发和管理应用程序的 AWS 开发工具包和编程工具包的完整列表,请参阅在 AWS 上进行构建的工具


这篇文章对您有帮助吗?


您是否需要账单或技术支持?