13 个版本
0.4.3 | 2020 年 7 月 10 日 |
---|---|
0.4.2 | 2020 年 7 月 10 日 |
0.2.4 | 2019 年 12 月 17 日 |
0.1.5 | 2019 年 10 月 25 日 |
在 网页编程 中排名 #2432
180KB
2.5K SLoC
已迁移至 cloud-storage
云存储
一个库,可以用于将数据块推送到 Google Cloud Storage,并生成这些文件的下载链接。
用法
将以下行添加到你的 Cargo.toml 文件中
[dependencies]
cloud-storage = "0.4"
示例
// create a new Bucket
let new_bucket = NewBucket { name: "mybucket", ..Default::default() }
let bucket = Bucket::create(new_bucket)?;
// 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")?;
let mut object = Object::create("mybucket", content, "folder/filename.txt", "application/text")?;
// let's copy the file
object.copy("mybucket2: electric boogaloo", "otherfolder/filename.txt")?;
// print a link to the file
println!("{}", object.download_url("new filename.txt", 1000)); // download link for 1000 seconds
// remove the file from the bucket
object.delete()?;
可以使用名为 SERVICE_ACCOUNT
的环境变量授予授权,它应包含包含 Google 凭证的 service-account-*******.json
文件的路径。服务帐户需要 devstorage.full_control
权限。这并非绝对必要,所以如果你需要解决这个问题,请告诉我!
服务帐户还应具有 Service Account Token Creator
(用于生成访问令牌)和 Storage Object Admin
(用于生成下载文件的签名 URL)角色。
测试
要运行此项目的测试,首先创建一个名为 TEST_BUCKET 的环境参数(或 .env 文件中的条目)。确保此名称未被使用!测试将创建此存储桶以进行测试目的。它还会创建几个以该名称为前缀的其他存储桶,但它们将被删除。接下来,你需要一个 Google Cloud Storage 项目,你必须为该项目创建一个服务帐户。下载 service-account.json 文件,并将文件的路径放置在 SERVICE_ACCOUNT
环境参数中。然后运行
cargo test --tests -- --test-threads=1
test-threads=1
是必要的,这样测试就不会超过每秒创建 2 个存储桶的速率限制。根据你的网络速度,你可能能够使用多个测试线程)(
依赖关系
~15–29MB
~580K SLoC