我知道有两种方法可用于在 AWS S3 中上传文件(即 PutObject 和 TransferUtility.Upload)。有人可以解释一下使用哪一个吗?
仅供参考,我的文件从 1kb 到 250MB 不等。
提前致谢。
Amazon 弃用了 S3 Transfer Manager并迁移到了新的 Transfer Utility。Transfer Utility 是一个用于处理 S3 最常见用途的简单接口。它有一个构造函数,需要一个AmazonS3Client实例。使用它非常简单,让开发人员用更少的代码执行所有操作。
以下是通过 Transfer Manager 使用 Transfer Utility 的主要功能
transferUtility.upload(MY_BUCKET,OBJECT_KEY,FILE_TO_UPLOAD) transferUtility.download(MY_BUCKET,OBJECT_KEY,FILE_TO_UPLOAD)
注意: 其他一切都很好。但是 Transfer Utility 不支持 copy() API。要完成它,请使用AmazonS3Client类的 copyObject()方法。
基于亚马逊文档,我会坚持TransferUtility.Upload
:
提供用于管理进出 Amazon S3 的传输的高级实用程序。
TransferUtility 提供了一个简单的 API,用于将内容上传到 Amazon S3 以及从其中下载内容。它广泛使用 Amazon S3 分段上传来提高吞吐量、性能和可靠性。
通过指定文件路径而不是流来上传大文件时,TransferUtility 使用多个线程一次上传单个上传的多个部分。在处理大内容大小和高带宽时,这可以显着提高吞吐量。
但是请注意可能的并发问题以及关于使用 BeginUpload(异步版本)的建议,就像在这个相关的帖子中一样