32 个版本
0.11.1 | 2022 年 5 月 7 日 |
---|---|
0.11.0 | 2022 年 1 月 22 日 |
0.11.0-rc.1 | 2021 年 10 月 18 日 |
0.10.2 | 2021 年 6 月 6 日 |
0.3.4 | 2020 年 3 月 5 日 |
1733 在 网页编程 中排名
106,679 每月下载量
被 17 个 crate(6 个直接)使用
345KB
5K SLoC
云存储
一个库,可用于将数据块推送到 Google Cloud Storage,然后生成这些文件的下载链接。
用法
将以下行添加到您的 Cargo.toml 文件中
[dependencies]
cloud-storage = "0.10"
示例
// create a new Bucket
let new_bucket = NewBucket { name: "mybucket", ..Default::default() }
let bucket = Bucket::create(new_bucket).await?;
// upload a file to our new bucket
let content = b"Your file is now on google cloud storage!";
bucket.upload(content, "folder/filename.txt", "application/text").await?;
let mut object = Object::create("mybucket", content, "folder/filename.txt", "application/text").await?;
// let's copy the file
object.copy("mybucket2: electric boogaloo", "otherfolder/filename.txt").await?;
// print a link to the file
println!("{}", object.download_url(1000)); // download link for 1000 seconds
// remove the file from the bucket
object.delete().await?;
可以使用 SERVICE_ACCOUNT
或 GOOGLE_APPLICATION_CREDENTIALS
环境变量授权,该变量应包含包含 Google 凭据的 service-account-*******.json
文件的路径。或者,可以直接通过 SERVICE_ACCOUNT_JSON
或 GOOGLE_APPLICATION_CREDENTIALS_JSON
环境变量提供服务账户凭证,这在 CI 或 k8s 中提供机密信息时很有用。
服务账户还应具有 Service Account Token Creator
(用于生成访问令牌)和 Storage Object Admin
(用于生成下载文件的签名 URL)角色。
同步
如果您目前不打算运行异步执行器,那么 cloud_storage
提供了一个同步 API。要使用它,请启用功能标志 sync
,然后调用 function().await
而不是调用 function_sync()
。
您需要在 Cargo.toml 中设置 global-client
和 sync
标志,例如
cloud-storage = { version = "0.11.0", features = ["global-client", "sync"] }
测试
要为此项目运行测试,首先创建一个名为TEST_BUCKET的环境参数(或.env文件中的条目)。确保此名称尚未被使用!测试将为此测试目的创建此存储桶。它还会创建几个以该名称为前缀的其他存储桶,但它们将被删除。接下来,您需要一个Google Cloud Storage项目,您必须为此项目创建一个服务账户。下载service-account.json文件,并将文件路径放置在环境参数SERVICE_ACCOUNT
中。然后,运行
sh test.sh
必须使用test-threads=1
,这样测试就不会超过每秒创建2个存储桶的速率限制。(根据您的网速,您可能能够使用多于1个测试线程)
依赖项
~15–31MB
~597K SLoC