2

早上好,

我正在通过 VichUploaderBundle在本地上传我的文件。每件事都完美无缺。

现在我不想再在本地存储我的文件:我想将它们存储在Google Cloud Storage上。我发现KnpGaufretteBundle可用于在云中存储文件。

那么,有没有关于如何配置Gaufrette (php 包)KnpGaufretteBundle (symfony 包)来存储/上传/读取文件的示例或示例链接google-cloud-storage

我唯一发现的是那个链接,它是 GoogleCloudStorage 的一个适配器类。

我找到了有关此问题的另一个链接,但它提出了一个将文件存储在以下位置的示例amazon-s3upload-files-to-amazon-s3-with-symfony2-and-gaufrette

谢谢你的帮助...

4

1 回答 1

2

可以使用 KnpGaufretteBundle 来做到这一点。您只需要创建一个工厂来创建一个完全经过身份验证的 Google 客户端,并使用该客户端返回 Google 服务存储。像这样的东西:

/**
 * @return \Google_Service_Storage
 */
public function createService($privateKeyPath, $password, $googleAccountName)
{
    $client = new \Google_Client();
    $scopes = array(
        'https://www.googleapis.com/auth/devstorage.read_write'
    );

    $privateKey = file_get_contents($privateKeyPath);

    $credential = new \Google_Auth_AssertionCredentials(
        $googleAccountName, $scopes, $privateKey, $password
    );

    $client->setAssertionCredentials($credential);

    return new \Google_Service_Storage($client);
}

您还需要配置 KnpGaufretteBundle,为此请查看: KnpGaufretteBundle-GoogleCloudStorage

这里有一个 GitHub 中的帖子,解释了工厂问题: post

于 2016-06-09T09:16:56.180 回答