用PHP实现Google Cloud Storage

备忘录
– 对于我的情况,我创建了多个账户用于GCP,所以请注意projectId。

首先

• 从管理界面创建和发布容器
• PHP只能上传文件
• 上传的文件可以公开访问
• 桶(bucket)类似于文件夹
• “asia-northeast”是东京地区

GCP主页
https://console.cloud.google.com/home/dashboard

创建上传目标存储桶

直到创建桶为止

1.png
2.png
3.png
4.png

到此为止,公开存储桶已准备就绪。

获取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。

以上完成