#pink #s3 #ink #phat-contract

无 std pink-s3

Phala的pink环境的简单S3客户端

10个版本 (5个重大更新)

0.7.0 2024年2月27日
0.7.0-dev.02024年2月23日
0.6.0 2023年11月6日
0.5.0 2023年10月12日
0.1.2 2022年8月30日

2859神奇豆

Download history 4/week @ 2024-03-15 12/week @ 2024-03-29

每月219次下载

Apache-2.0

85KB
1K SLoC

pink-s3

Phala网络pink环境的纯Rust AWS S3客户端。

示例

# fn doctest_ignore() {

use pink_s3 as s3;

let endpoint = "s3.ap-southeast-1.amazonaws.com";
let region = "ap-southeast-1";
let access_key = "<Put your S3 access key here>";
let secret_key = "<Put your S3 access secret key here>";

let s3 = s3::S3::new(endpoint, region, access_key, secret_key)
    .unwrap()
    .virtual_host_mode(); // virtual host mode is required for newly created AWS S3 buckets.

let bucket = "my-wallet";
let object_key = "path/to/foo";
let value = b"bar";

s3.put(bucket, object_key, value).unwrap();

let head = s3.head(bucket, object_key).unwrap();
let mut head_content_length: u64 = 0;
for (k, v) in head.headers {
    if k.to_ascii_lowercase() == "content-length" {
        head_content_length = v.parse().expect("expect length")
    }
}
assert_eq!(head_content_length, value.len() as u64);

let v = s3.get(bucket, object_key).unwrap().body;
assert_eq!(v, value);

s3.delete(bucket, object_key).unwrap();

# }

支持的S3操作

  • HeadObject
  • GetObject
  • PutObject
  • DeleteObject

依赖

~10–14MB
~246K SLoC