宣布在 Rust 中推出 Amazon S3 传输管理器的开发者预览版
我们很高兴地宣布推出适用于 Rust 的 Amazon S3 传输管理器的开发者预览版,这是一款高级工具,可通过 Amazon Simple Storage Service(Amazon S3)加快和简化上传和下载。使用这个新库,开发者可以在 Amazon S3 和各种来源(包括文件、内存缓冲区、内存流和目录)之间高效地传输数据。Transfer Manager 可自动处理复杂场景,例如并行分段上传和字节范围下载,以提供更高的吞吐量和可靠性。
主要特点和优点
- 自动请求拆分:通过自动将大型请求拆分为部分大小的区块并在多个连接之间并行处理来提高吞吐量。这克服了单连接带宽限制。
- 自动重试:通过自动独立重试失败的区块来增强可靠性,从而无需在发生间歇性错误时重新启动整个传输。
- 优化的并行读取:在上传期间对大文件的不同部分实施并行读取操作,与顺序读取相比,提供卓越的性能。
- 简化目录操作:通过单个 API 调用传输共享通用前缀的整个目录或对象,从而简化批量传输操作。
- 高级负载平衡:根据当前工作负载和网络带宽动态调整并行度,自动优化吞吐量。
入门
要开始使用传输管理器,请遵循以下示例:
添加项目依赖关系
首先,你需要在 Cargo.toml 文件中添加一个新的依赖关系。
创建传输管理器
使用默认推荐设置创建传输管理器:
上传文件示例
这将通过自动将请求拆分为部分大小的块并并行上传来上传文件。
下载文件示例
这会将下载内容拆分为部分大小的块,并行下载,然后按顺序交付。
上传目录示例
这将递归上传目录中的所有文件,将给定的文件 key_prefix
与文件系统中每个文件的路径相结合。例如,如果你的 key_prefix
是"前缀",文件的路径是"test/docs/key.json",则文件上传时将使用"前缀/test/docs/key.json"的对象密钥。
下载目录示例
这将下载前缀下的每个对象,并将创建一个具有相似层次结构的本地目录。
结论
适用于 Rust 的 Amazon S3 Transfer Manager 通过高效的资源管理和易于使用的 API 来简化 Amazon S3 的操作。我们邀请您试用开发者预览版并通过 GitHub 问题分享您的反馈。您的意见将有助于塑造该库的未来发展,以满足 Rust 社区的需求。
作者简介: