Php 以编程方式创建Google存储桶的对象权限时出错。

Php 以编程方式创建Google存储桶的对象权限时出错。,php,google-cloud-storage,Php,Google Cloud Storage,我已经使用谷歌控制台的UI创建了一个Bucket。我想以编程方式上传Bucket中的一些对象。我已经检查了谷歌的文档。 问题是,返回有关权限的错误 { "error": { "errors": [ { "domain": "global", "reason": "forbidden", "message": "starting-account-f8mo7two5s1@kjs-speech-api-1506584214035.iam.gserviceaccount.com does not ha

我已经使用谷歌控制台的UI创建了一个Bucket。我想以编程方式上传Bucket中的一些对象。我已经检查了谷歌的文档。

问题是,返回有关权限的错误

{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "starting-account-f8mo7two5s1@kjs-speech-api-1506584214035.iam.gserviceaccount.com does not have storage.objects.create access to object kjs-lms/0.mp3."
}
],
"code": 403,
"message": "starting-account-f8mo7two5s1@kjs-speech-api-1506584214035.iam.gserviceaccount.com does not have storage.objects.create access to object kjs-lms/0.mp3."
}
}

我试图在IAM角色中授予权限,但仍然出现相同的错误

用于运行PHP程序的帐户没有对存储桶的写入权限。您是在AppEngine中运行它,还是在GCE这样的谷歌云环境中运行它?在这种情况下,您的程序很可能使用应用程序默认凭据运行,这与您自己运行不同。授予错误消息中提到的帐户有关存储桶的所有权,问题应该得到解决。

感谢您的回答。我正在以
putenv
的形式发送(从google控制台下载的凭据,作为
.json
)服务帐户密钥。这是一个简单的Laravel应用程序,目前正在本地主机上运行。我试着同意了,但还是不起作用。你还记得这是怎么回事吗?这是我在搜索中发现的,但似乎只是授予访问权限的失败。你想告诉我更多,发生了什么,或者…也许。。。关上它?
{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "starting-account-f8mo7two5s1@kjs-speech-api-1506584214035.iam.gserviceaccount.com does not have storage.objects.create access to object kjs-lms/0.mp3."
}
],
"code": 403,
"message": "starting-account-f8mo7two5s1@kjs-speech-api-1506584214035.iam.gserviceaccount.com does not have storage.objects.create access to object kjs-lms/0.mp3."
}
}