В настоящее время я использую Google App Engine для моего проекта PHP. Я решил перенести свой проект в Google Compute Engine, но не смог подключиться к Google Cloud Storage через php. Есть ли способ обойти эту проблему?
Обновить:
Я обнаружил, что это достижимо, и мне нужен пример использования Server API для захвата содержимого хранилища. Это то, что я сделал.
require_once 'GoogleAPI/autoload.php';
$projectId = "dummyid";
$client = new Google_Client();
$client->setApplicationName("Gave");
$client->setDeveloperKey("SERVERKEY");
$client->addScope(Google_Service_Storage::DEVSTORAGE_FULL_CONTROL);
$storage = new Google_Service_Storage($client);
$buckets = $storage->buckets->listBuckets($projectId);
foreach ($buckets['items'] as $bucket) {
printf("%s\n", $bucket->getName());
}
Но это все еще не работает. Имеет ли ключ сервера ограниченный доступ к какому-либо элементу управления? Это дает мне ошибку 500.
Вы, безусловно, можете использовать Google Cloud Storage (GCS) от Google Compute Engine (GCE). Вы найдете, что это один из самых быстрых способов доступа к GCS. Однако вы не можете получить доступ к GCS, используя те же PHP-библиотеки App Engine, когда вы не используете App Engine.
Каноническая клиентская библиотека для использования PHP из сред, отличных от AppEngineis Клиентская библиотека Google API для PHP. Вы можете найти демонстрации и руководства по доступу к GCS с этой библиотекой здесь: https://cloud.google.com/storage/docs/json_api/v1/json-api-php-samples
Как второй вариант, новый gcloud-PHP Проект имеет базовую поддержку GCS.
Наконец, в качестве третьего варианта, общедоступные API-интерфейсы для прямого доступа к GCS с помощью HTTP-запросов хорошо документированы и очень хорошо работают от GCE.
Других решений пока нет …