当前位置: 首页 > 知识库问答 >
问题:

Google云存储客户端库-将acl设置为“公共读取”和“bucket-owner-full-control”

阎经武
2023-03-14

我不能以这种方式设置acl:(同时拥有公共读取和所有者完全控制)

GcsFileOptions options = new GcsFileOptions.Builder().acl("bucket-owner-full-control;public-read").build();

这里的解决方案是什么?

共有1个答案

壤驷鸿
2023-03-14

不幸的是,您不能同时使用多个罐装ACL。不存在意味着“让bucket所有者完全控制对象并使其可公开读取”的罐装ACL。同样不幸的是,我不相信GcsFileOptions提供了一种简单的方法来指定自定义ACL(尽管我可能错过了它,但任何知道它的人都可以随意编辑它)。

一种可能是更改bucket中新对象的默认ACL,然后根本不显式设置ACL。使用gsutil可以非常容易地为匿名用户添加默认读取权限:

$> gsutil defacl ch -g AllUsers:R gs://mybucket

(注意:有一个类似的命令gsutil ACL,它控制bucket或对象ACL,而不是bucket中新创建对象的默认ACL。这两者很容易混淆)

 类似资料:
  • 我的网站文件托管在Google Cloud Storage,每次我更新一个文件(比如。png或。xml)时,我总是要等一段时间才能看到新文件出现在我的页面上。 有没有办法覆盖单个对象的默认缓存设置(max-age=3600)?尝试用“no store”、“no cache”、“max-age=0”编辑“cache-control”元数据,但它们似乎都不起作用,仍然在响应头中获得“cache-con

  • 我一直在bucket策略示例中看到这种情况,但我不知道它是什么 这是否意味着用户必须添加一个具有“bucket-owner-full-control”值的标头“s3:x-amz-acl”?这是强制执行实际的acl还是任意的?它可以是任何头和字符串,或者S3:X-AMZ-ACL和bucket-owner-full-control有什么意义吗?

  • 我遇到了这个问题,找不到一个简单的php示例,可以在上传到google云存储时设置对象缓存控制。我知道它是一个关于对象的setMetadata,但我不知道如何做到这一点。使用gsutil并不能削减它,因为它对于web应用程序来说不是动态的。 到目前为止,这是我所拥有的,但setMetadata行抛出错误。谁能帮忙纠正那条线吗?请注意,授权令牌在以下内容之前已经获得

  • 我在我创建的谷歌云存储上有一个存储桶。我想测试一些内置ACL,如public read、public read write等。但是,一旦我使用gsutil setacl命令更改了ACL,例如:

  • 我有一个谷歌云存储桶,我想给个人用户访问个人文件的权限。因此,我有一个uri为:列为具有“读取”权限的“用户”。 但是,任何使用url访问该文件的尝试:<代码>https://storage.cloud.google.com/my-bucket/myfile即使我已登录,也会通过浏览器返回一个简短页面,说明“403禁止”。如果我打开“匿名”选项卡,当我转到该URL时,系统会提示我登录google,

  • 因此,我正在查看来自Google的示例代码,但我无法确定如何激活配置文件? https://cloud.google.com/appengine/docs/flexible/nodejs/using-cloud-storage 示例代码: 但是,当您阅读https://github.com/googleCloudplatform/google-cloud-node/blob/master/docs