我有以下代码示例,该示例接收一个bufferedImage及其mimeType,然后将其上传到Google Cloud Storage。
一切正常,但是由于某种原因,我的Google Cloud Function从Storage API收到403错误。
我必须做什么才能使我的GC功能可以访问GC存储?
我在文档中找不到任何可以向我展示如何执行此操作的内容。
const { Storage } = require('@google-cloud/storage');
// Creates a client
const storage = new Storage();
// Lists all buckets in the current project
const buckets = storage.getBuckets();
exports.uploadImage = (bucketName, fileName, imageBuffer, mimeType) => {
return new Promise((resolve, reject) => {
let bucket = storage.bucket(bucketName);
let file = bucket.file(fileName);
file.save(imageBuffer,
{
metadata: { contentType: `image/${mimeType}` },
},
((error) => {
error ? reject(error) : resolve()
})
);
})
}
这是我得到的错误
{“代码”:403,“错误”:[{“域”:“全局”,“原因”:“禁止”,“消息”:“ [email protected]没有存储空间。 objects.create对blog / e33f9c9d-65f0-4a7f-8332-29846f770e6d的访问权限。“}”,“消息”:“ [email protected]没有storage.objects.create对blog / e33f9c9d的访问权限-65f0-4a7f-8332-29846f770e6d。“}
云功能(CF)由特定的服务帐户(在您的情况下[email protected]
)执行。从运行时服务帐户:
在函数执行期间,Cloud Functions将服务帐户
[email protected]
用作身份。
由于您在访问存储区/文件时遇到403错误,这意味着它们不能公开访问,因此您需要为上述服务帐户提供必要的访问权限(至少storage.objects.create
在错误消息中已提及)根据您为存储选择并配置的访问控制选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句