Как работает загрузка файлов из хранилища 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]);

?>

0

Решение

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

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

[1] https://stackoverflow.com/a/48559967

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

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

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

0

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

К счастью, 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/#top_of_page

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

0