那么是否真的有可能在PHP中访问私有Google Cloud Storage存储桶?
我已经尝试过使用gsutil工具,但这并不能完全满足我的需求。
发布于 2018-06-01 13:34:45
首先,你必须创建一个你将用于身份验证的应用程序帐户。转到Google Play Developer Console >>设置>> API访问页面底部,点击“创建帐户”(而不是OAuth)。然后为创建的帐户设置权限并以JSON生成密钥文件。应该看起来像这样:
{
"type": "service_account",
"project_id": "api-...",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "...@...iam.gserviceaccount.com",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/..."
}
下一步在你的PHP脚本中使用生成的凭据。在Composer Google云端客户端库中下载或需要。
使用Google云端客户端库方法来授权和下载报告文件:
use Google\Cloud\Storage\StorageClient;
$client = new StorageClient([
'scopes' => [StorageClient::READ_ONLY_SCOPE],
'keyFile' => json_decode(file_get_contents('yourKeyFile.json'), true)
]);
$bucket = $client->bucket('pubsite_prod_rev_*'); //Find your bucket name in Google Developer Console >> Reports
//List all objects in bucket
foreach ($bucket->objects(['prefix' => 'stats/installs/']) as $object) {
print_r($object->name());
}
//Download some file
$file = $bucket->object('stats/installs/installs_*_overview.csv');
$file->downloadToFile();
//Or print as string
echo $file->downloadAsString();
https://stackoverflow.com/questions/-100008613
复制相似问题