【发布时间】:2019-12-03 21:44:29
【问题描述】:
我正在寻找如何提供对 Google Cloud Storage 中“文件夹”的临时访问权限的方法。
我的问题: 我有很多“文件夹”的存储桶(我知道 GCS 上不存在该文件夹)。
\Bucket
|-Folder1
\-File2.csv
|-File3.csv
|-File4.csv
|-Folder2
\-File5.csv
|-File6.csv
我想给用户一个临时访问权限(自动过期的东西)来读取 Bucket/Folder1/*,这样用户就可以访问整个目录“Folder1”并下载该目录中的所有文件(File2.csv,文件 3.csv、文件 4.csv)。
我找到了 signedUrls https://cloud.google.com/storage/docs/gsutil/commands/signurl,但我没有找到如何为整个 Folder1 目录提供访问权限的方法。
我能够使用以下策略在 AWS S3 上运行相同的场景:
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": [
"arn:aws:s3:::name-of-a-bucket"
],
"Condition": {
"StringLike": {
"s3:prefix": "Folder1/*"
}
}
}
有什么方法可以为多个文件提供临时访问权限?
【问题讨论】:
-
使用 GCS API 怎么样?我相信我们可以使用 API 更改文件夹上的 ACL。然后我们可以编写一个授予访问权限的作业,并安排在一段时间后执行第二个作业来删除访问权限?
-
@Kolban 我必须每秒提供数百个这样的凭据。我不确定 ACL 是否是为这样的场景设计的。在cloud.google.com/storage/quotas 里面我找到了句子
There is a limit of 100 access control list entries (ACLs) per object。我将不得不创建某种缓存机制,因为在每个到期期间(在我的情况下为 12 小时)可以访问文件超过 100 次。在“最坏的情况下”我必须这样做......但我希望谷歌云内部有一些东西已经解决了这个问题:-)
标签: amazon-s3 google-cloud-storage