Создание облачного хранилища с помощью AppEngine

Есть ли способ создать корзину, используя AppEngine?

Я использовал use google\appengine\api\cloud_storage\CloudStorageTools; писать и читать файлы, но я не смог понять, как создавать ведра.

РЕДАКТИРОВАТЬ Я не хотел бы создавать ведро вручную, а с помощью кода.

2

Решение

Ознакомьтесь с документацией по облачному хранилищу для Примеры осуществлять их программный API, и Appengine Docs для получения дополнительной информации об аутентификации.

1

Другие решения

Существует два способа создания сегментов Google Cloud Storage.

1) Создайте их из новой консоли администратора — console.developers.google.com, нажмите «Хранилище», затем «Облачное хранилище». Вы должны увидеть опцию добавления корзины, если у вас включен биллинг.

2) Используйте ведро по умолчанию. Перейдите на appengine.google.com, нажмите «Настройки приложения», и вы увидите список «Google Cloud Storage Bucket» в списке. Если вы этого не сделаете, прокрутите страницу вниз и нажмите «Создать» в разделе «Интеграция в облако».

Пожалуйста, смотрите эту статью для деталей — https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/activate

=== — ===

Для справки PHP о том, как создать правильный вызов API:

https://github.com/google/google-api-php-client/blob/master/src/Google/Service/Storage.php

API, который вы хотите вызвать, находится здесь:

https://cloud.google.com/storage/docs/json_api/v1/buckets/insert

Итак, в основном, в вашем коде вы хотите сгенерировать уникальное имя сегмента (так как пространство имен универсально для всех, поэтому все простые имена блоков используются). Некоторые люди добавляют текущую дату / время к имени сегмента (appID-date-time).

Вы хотите сделать вызов API вставки сегмента для создания сегмента, а затем вызов API вставки объекта для помещения объекта в блок. После этого вы можете манипулировать объектом, выбирая его и изменяя его.

1

Во-первых, убедитесь, что ваш проект настроен правильно и включает API-интерфейсы Store следуя инструкциям здесь.

Следующий код создаст новую корзину и затем перечислит все группы, связанные с вашим проектом:

require_once 'vendor/autoload.php';

$projectId = "example"; // your app engine id (example.appspot.com).
$client = new Google_Client();
$client->useApplicationDefaultCredentials(); // This won't work locally.
$client->addScope(Google_Service_Storage::DEVSTORAGE_FULL_CONTROL);
$storage = new Google_Service_Storage($client);

// Create our new bucket.
$newBucket = new Google_Service_Storage_Bucket();
$newBucket->setName("test-bucket1");

try {
$test = $storage->buckets->insert($projectId, $newBucket);
print_r($test);
} catch (\Google_Service_Exception $e) {
$error = $e->getErrors()[0];
// Available: reason & message.
die("Error message: ". $error["message"]);
}

// List all our buckets.
$buckets = $storage->buckets->listBuckets($projectId);

foreach ($buckets['items'] as $bucket) {
printf("%s<br>", $bucket->getName());
}

Обратите внимание, что этот пример не будет работать локально и должен быть развернут на серверах Google. Кроме того, имена блоков должны быть глобально уникальными, поэтому попробуйте добавить к имени блока случайное число или идентификатор вашего проекта.

0