我正在将文件从我的服务器上传到我的存储桶foobar
.上传文件的路径为 foobar/uploads/avatars/123456789.jpg
。
我希望用户能够通过像 https://storage.googleapis.com/foobar/uploads/avatars/123456789.jpg 这样的公共https链接访问此文件。该链接必须在不登录任何谷歌帐户的情况下访问。我不希望用户能够通过 https://storage.googleapis.com/foobar/、https://storage.googleapis.com/foobar/uploads/avatars/或某种不同的链接浏览整个存储桶。
我正在使用@google云/存储来上传文件。如何使用 ACL 实现这些设置?
对于现有对象:
file.makePublic(function(err, apiResponse) {});
上传新对象时,请使用选项 public
,这相当于指定 options.predefinedAcl = 'publicRead'
。根据上传的方式,您可以像这样更改createWriteStream
调用:
file.createWriteStream({public: true, metadata: {...}})