#云存储 #谷歌云 #存储 # #谷歌 #API 绑定

cloud-storage-lite

简单的、灵活的 Google Cloud Storage 客户端

10 个版本

0.1.9 2021 年 4 月 29 日
0.1.8 2021 年 4 月 29 日
0.1.6 2021 年 3 月 29 日

#32 in #云存储

Download history 28/week @ 2024-01-22 25/week @ 2024-02-19 15/week @ 2024-02-26 33/week @ 2024-03-04 11/week @ 2024-03-11 5/week @ 2024-03-18 33/week @ 2024-03-25 47/week @ 2024-04-01 14/week @ 2024-04-08 19/week @ 2024-04-15

114 个月下载量

MIT 许可证

43KB
923 代码行

cloud-storage-lite

一个简单、灵活的 Google Cloud Storage 客户端(GCS)。

这个库的功能不如cloud-storage 那样丰富,但如果您

  • 使用像 Vault 这样的密钥保管器
  • 通常与单个存储桶(使用存储桶范围客户端)一起工作
  • 希望在程序中使用多个客户端或 tokio 运行时
  • 需要规范化的错误(404 只有一个错误变体)

示例

use std::{error::Error, convert::Infallible};
use cloud_storage_lite::{
 self as gcs,
 client::BucketClient,
 token_provider::{
   self,
   oauth::{self, OAuthTokenProvider, ServiceAccount}},
};
use futures::{future, stream, TryStreamExt};

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error + 'static>> {
  let token_provider =
    token_provider::RenewingTokenProvider::new(
      OAuthTokenProvider::new(
        ServiceAccount::read_from_canonical_env()?,
        oauth::SCOPE_STORAGE_FULL_CONTROL,
      )?
    );
  let client = gcs::Client::new(token_provider)
    .into_bucket_client("my-bucket".into());

  client
    .create_object(
      "key",
      stream::once(
        future::ok::<_, Infallible>(b"value".to_vec())
      )
    )
    .await?;

  let object = client.get_object("key").await?;

  let value_bytes = client
    .download_object(&object.name)
    .await?
    .map_ok(|chunk| chunk.to_vec())
    .try_concat()
    .await?;

  println!(
    "the value is: {}",
    String::from_utf8(value_bytes)?
  );

  Ok(())
}

依赖项

~8–24MB
~364K SLoC