用PHP实现Google Cloud Storage
备忘录
– 对于我的情况,我创建了多个账户用于GCP,所以请注意projectId。
首先
• 从管理界面创建和发布容器
• PHP只能上传文件
• 上传的文件可以公开访问
• 桶(bucket)类似于文件夹
• “asia-northeast”是东京地区
GCP主页
https://console.cloud.google.com/home/dashboard
创建上传目标存储桶
直到创建桶为止
到此为止,公开存储桶已准备就绪。
获取API密钥
请按照获取JSON文件的步骤,在服务器上创建并上传秘钥。
API密钥已准备好。
使用 composer 安装库。
请自由地改变路径。
php /var/www/html/composer.phar require google/cloud-storage
然后,使用PHP。项目ID显示在页面顶部的图片上。
<?php
use Google\Cloud\Storage\StorageClient;
class HogesController extends AppController
{
public function test()
{
#
$projectId = 'project-id123456';
# Instantiates a client
$storage = new StorageClient([
'projectId' => $projectId,
'keyFile' => json_decode(file_get_contents('/hoge/your_secret_key.json'), true)
]);
$bucketName = 'your_bucket';
$bucket = $storage->bucket($bucketName);
$object = $bucket->upload(
fopen('/img/your_upload_file.jpg', 'r')
);
pr($object);
die;
$this->autoRender = false;
}
}
附加说明
当执行以下操作时,图像显示速度会变慢,因此
https://storage.googleapis.com/...
直接提供链接可能更好,就像这样。
文件的上传目标为
https://storage.googleapis.com/your_bucket/your_upload_file.jpg。
使用Nginx的反向代理,可以实现像独立域名一样的显示。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
//略
location ^~/gcp_storage/ {
proxy_pass https://storage.googleapis.com/your_bucket/;
}
}
设定完成后别忘了执行 service nginx restart。
以上完成