14个版本 (8个破坏性版本)
0.9.0 | 2024年6月26日 |
---|---|
0.8.0 | 2024年3月8日 |
0.6.1 | 2023年12月1日 |
0.6.0 | 2023年11月28日 |
0.0.1 | 2023年3月14日 |
#2281 in 网络编程
每月496次下载
40MB
1M SLoC
mountpoint-s3-client
此crate为Mountpoint for Amazon S3提供了高性能的Amazon S3客户端。客户端绑定到AWS Common Runtime,它提供了AWS身份验证、HTTP客户端和低级IO原语等功能。
此crate不适用于通用用途,我们认为其接口是不稳定的。寻找通用用途的Rust版Amazon S3客户端的客户应使用官方的AWS SDK for Rust。
lib.rs
:
基于AWS Common Runtime (AWS CRT)构建的Amazon S3客户端。
此crate提供了Amazon S3客户端的高性能实现,该客户端使用AWS Common Runtime (CRT)。CRT是一个用于与AWS服务交互的软件库,提供IO、HTTP和加密等组件。CRT是为了高性能和低资源使用而专门构建的,以最有效地使用您的计算资源。对于Amazon S3,CRT包括一个客户端,该客户端实现了最佳实践的性能设计模式,包括超时、重试和自动请求并行化以提高吞吐量。
此crate不适用于通用用途,我们认为其接口是不稳定的。寻找通用用途的Rust版Amazon S3客户端的客户应使用官方的AWS SDK for Rust。
示例
构建一个新的S3客户端并从位于us-east-1
区域的存储桶中下载对象
use futures::TryStreamExt;
use mountpoint_s3_client::{S3CrtClient, ObjectClient};
let client = S3CrtClient::new(Default::default()).expect("client construction failed");
let response = client.get_object("my-bucket", "my-key", None, None).await.expect("get_object failed");
let body = response.map_ok(|(offset, body)| body.to_vec()).try_concat().await.expect("body streaming failed");
要进一步配置客户端,请使用S3ClientConfig
构建器
use mountpoint_s3_client::S3CrtClient;
use mountpoint_s3_client::config::{S3ClientAuthConfig, S3ClientConfig, EndpointConfig};
let config = S3ClientConfig::new()
.endpoint_config(EndpointConfig::new("us-west-2"))
.auth_config(S3ClientAuthConfig::NoSigning)
.user_agent_prefix("my-test-client");
let client = S3CrtClient::new(config).expect("client construction failed");
依赖项
~8–22MB
~326K SLoC