Reputation: 23
Currently I am using google app engine for my php project. I decided to migrate my project to Google Compute Engine, but i could not connect to Google Cloud Storage through php. Is there anyway to work around this issue?
Update:
I found that it is achievable and i need some example of using Server API to grab the storage content. This is what i did.
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());
}
But it still doesnt work. Does server key has limited to access some control ? It gives me an error 500.
Upvotes: 0
Views: 954
Reputation: 38389
You can certainly use Google Cloud Storage (GCS) from Google Compute Engine (GCE). You'll find it's one of the very fastest ways to access GCS. You cannot, however, access GCS using the same App Engine PHP libraries when you're not using App Engine.
The canonical client library for using PHP from environments other than AppEngineis Google APIs Client Library for PHP. You can find demonstrations and tutorials on accessing GCS with that library here: https://cloud.google.com/storage/docs/json_api/v1/json-api-php-samples
As a second option, the new gcloud-php project has basic support for GCS.
Finally, as a third option, the public APIs for accessing GCS directly with HTTP requests are well documented and work very well from GCE.
Upvotes: 1