从服务器到存储桶的GSUTIL cp文件并将文件公开

tid*_*dpe 5 php google-cloud-storage gsutil google-cloud-platform

从php文件在我的服务器中使用此命令:

exec(gsutil cp /path/to/file/on/server/namefile.ext gs://nameBucket/dir/namefile.ext > /dev/null 2>&1) 
Run Code Online (Sandbox Code Playgroud)

我在存储桶中获取了namefile.ext,在正确的目录中...但需要使该文件可公开读取.

已经尝试过这个命令(在文件的末尾,为了公开),但无事可做:

exec(gsutil iam ch allUsers:objectViewer gs://nameBucket/dir/namefile.ext > /dev/null 2>&1)
Run Code Online (Sandbox Code Playgroud)

所以,上传工作,但我需要使文件可读,而无需我从桶的"浏览器"交互.有办法做到这一点?也许进入cp命令?

Lun*_*ast 5

您使用的命令gsutil iam ch allUsers:objectViewer旨在使存储桶中的所有对象公开可读,但您向它提供了该对象的 url。

因此,如果您想让特定文件公开可读:

gsutil acl ch -u AllUsers:R gs://nameBucket/dir/namefile.ext
Run Code Online (Sandbox Code Playgroud)

如果您想让存储桶中的所有对象公开可读:

gsutil iam ch allUsers:objectViewer gs://nameBucket/
Run Code Online (Sandbox Code Playgroud)

此处记录了这一点。