2017-05-09 46 views
0

我正在將文件從我的服務器上傳到我的存儲桶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-cloud/storage來上傳文件。我如何通過ACL實現這些設置?

回答

2

對於現有的對象:

file.makePublic(function(err, apiResponse) {}); 

在上傳新的對象,使用選項public,這是指定options.predefinedAcl = 'publicRead'的等價物。根據你上傳的方式,你可能會改變你的createWriteStream這樣的呼叫:

file.createWriteStream({public: true, metadata: {...}}) 
相關問題