[英]Google Cloud Storage issue with PHP
我正在使用这个库: google/cloud-storage
。
在我的存储中,我制作了一个存储桶,名为: mycustombucket
。 我的目标是在该存储桶中上传 csv 文件。 这是我的代码:
$storage = new StorageClient([
'projectId' => 'my project id',
'keyFile' => json_decode('{
"web":{
"client_id":"my client id",
"project_id":"my project id",
"auth_uri":"https://accounts.google.com/o/oauth2/auth",
"token_uri":"https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url":"my auth value",
"client_secret":"my client secret"
}
}', true)
]);
$bucket = $storage->bucket('mycustombucket');
$bucket->upload(
fopen('path/to/my/file.csv', 'r')
);
不幸的是,我收到此错误消息: json key is missing the type field
。 我发现了这个类似的POST ,但它对我不起作用。 我认为它也已经过时了。
你能建议我和想法,如何解决这个问题?
谢谢!
最后,通过从service account
生成密钥,我设法完成了这项工作。 从:
请注意,一旦生成,您将自动下载它。 下载按钮将不再可用。 因此,请确保您在生成密钥后拥有密钥。 我希望service account
有一个下载按钮,就像我有OAuth 2.0 Client IDs
一样(请参阅我的帖子)。 但我没有:(。最后我的代码:
$storage = new StorageClient([
'projectId' => 'projectId' => 'my project id',
'keyFile' => json_decode('{
"type": "service_account",
"project_id": "my project id",
"private_key_id": "my key id",
"private_key": "my key",
"client_email": "email@email.com",
"client_id": "client id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "url here"
}', true)
]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.