Есть ли способ создать корзину, используя AppEngine?
Я использовал use google\appengine\api\cloud_storage\CloudStorageTools;
писать и читать файлы, но я не смог понять, как создавать ведра.
РЕДАКТИРОВАТЬ Я не хотел бы создавать ведро вручную, а с помощью кода.
Ознакомьтесь с документацией по облачному хранилищу для Примеры осуществлять их программный API, и Appengine Docs для получения дополнительной информации об аутентификации.
Существует два способа создания сегментов 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 вставки объекта для помещения объекта в блок. После этого вы можете манипулировать объектом, выбирая его и изменяя его.
Во-первых, убедитесь, что ваш проект настроен правильно и включает 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. Кроме того, имена блоков должны быть глобально уникальными, поэтому попробуйте добавить к имени блока случайное число или идентификатор вашего проекта.