从谷歌云存储服务静态文件?

时间:2013-04-12 10:17:53

标签: google-app-engine google-cloud-storage

我想为应用引擎中托管的应用提供存储在Google云端存储中的静态文件。在HTML文件中,我使用了

<link href="https://storage.cloud.google.com/my_bucket/custom.css" rel="stylesheet">

如果登录用户的Google帐户有权访问存储桶,则该工作正常。 由于任何无法访问我的存储桶的人都可以访问应用,因此不会提供静态文件。

是否可以公开提供存储桶中的静态文件?我将静态文件(custom.css)设置为“公共共享”(ACL设置为“公共读取”),但其他用户仍然无法访问它。

2 个答案:

答案 0 :(得分:7)

我不确定您是如何上传文件的,以及未正确设置公开阅读的原因,但您也可以通过Google Cloud Storage Manager进行更改。只需找到存储桶和文件,然后单击Share Publicly复选标记,即可获得链接。

list of files in the bucket on cloud storage

或者您可以立即使用gsutil上传该文件,并立即进行公开阅读:

gsutil cp -a public-read custom.css gs://my_backet

答案 1 :(得分:1)

除了通过Google Cloud Storage Manager手动更改每个静态文件之外,您还可以使用set your bucket gsutil 进行公开查看:

使用acl设置当前存储桶对象的公开读取

gsutil -m acl set -R -a public-read gs://BUCKET_NAME

使用defacl设置为将来上传的默认设置:

gsutil -m defacl set public-read gs://BUCKET_NAME

然后,将自动检查上传的每个文件的“共享公开”复选框。

对于accessing bucket,请确保您已为组和用户以及bucket permission的域输入授权ID或电子邮件,否则您将收到如下错误消息:

'DefAclCommand' object has no attribute 'continue_on_error'

您也可以在 Console Using IAM roles 中进行。