Как работает загрузка файлов из хранилища Google для движка приложения, использующего php?

Я новичок в мире кодирования. Я хочу загрузить простой текстовый файл в корзину, которая находится в моем облачном хранилище. Я не нашел никаких полезных облачных документов по этому поводу. вот неработающий код:

<?php
require_once 'vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
define("PROJECT_ID", 'projectID');
define("BUCKET_NAME", 'bucketname');
$client = new Google_Client();
$client->setApplicationName("API_Cloud_Storage");
$client->useApplicationDefaultCredentials();
$client->setScopes(["https://www.googleapis.com/auth/cloud-platform"]);
$service = new Google_Service_Storage($client);
$request = $service->objects->listObjects(BUCKET_NAME);
foreach ($request["items"] as $object)
  printf("%s\n", $object->getName());
  printf("%s\n", $object->get);
$storage = new StorageClient();
$bucket = $storage->bucket(BUCKET_NAME); // Put your bucket name here.
$filePath="C:\users\useraccount\Desktop\address_file\textfile.txt";
$objectName="textfile.txt";
 $object = $bucket->upload(file_get_contents($filePath),
 ['name' => $objectName]);

?>

2 ответа

Решение

Кажется, что проблема в вашем коде, и есть ответ на связанный вопрос, на который вы можете сослаться (он также имеет ссылку на другую полезную документацию), который может помочь вам исправить ваш код [1]. Вы также можете положиться на этот пример кода в GitHub [2].

С точки зрения концепции загрузки локального файла, чтобы впоследствии предоставить публичный доступ для записи в него. Я думаю, что вам, возможно, придется прочитать немного больше об обслуживании файлов, загруженных вместе с вашим приложением из файловой системы [3]. Я также советую вам прочитать всю эту документацию, так как она говорит об обслуживании файлов из скрипта или непосредственно из GCS [4].

[1] /questions/34354519/klass-googlecloudstoragestorageclient-ne-najden/34354545#34354545

[2] https://github.com/GoogleCloudPlatform/php-docs-samples/blob/master/appengine/php55/storage/app.php

[3] https://cloud.google.com/appengine/docs/standard/php/googlestorage/

[4] https://cloud.google.com/appengine/docs/standard/php/googlestorage/public_access

К счастью, Google App Engine (GAE) предоставляет встроенную потоковую оболочку Google Cloud Storage (GCS), которая позволяет использовать многие стандартные функции файловой системы PHP для чтения и записи файлов в приложении PHP App Engine. Я также улучшаю свои навыки кодирования и нашел советы, которые помогли мне в документации GCP.

Используя предоставленный вами фрагмент кода, вы должны убедиться, что вы выполнили как минимум 2 действия:

  1. что вы правильно создали хранилище в Google Cloud Storage (GCS) [1]. Обязательно замените "BUCKET_NAME" в своем коде именем созданного вами сегмента GCS и укажите путь к текстовому файлу, который вы хотите загрузить.
  2. что вы настроили свое приложение PHP для записи файлов в ваше приложение [2] или для разрешения загрузки пользователями, если вы хотите, чтобы другие пользователи могли загружать файлы в ваше хранилище GCS [3].

Это стандартные практические руководства (учебные пособия находятся внизу навигационной панели), поэтому обязательно ознакомьтесь с примерами, представленными на Github, чтобы взглянуть на полные коды и адаптировать стиль к своему.

Надеюсь это поможет!

[1] https://cloud.google.com/storage/docs/creating-buckets

[2] https://cloud.google.com/appengine/docs/standard/php/googlestorage/

[3] https://cloud.google.com/appengine/docs/standard/php/googlestorage/user_upload

Другие вопросы по тегам