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