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

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

<?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 ]

0 голосов
/ 08 июня 2018

Кажется, что проблема в вашем коде, и есть ответ на связанный вопрос, на который вы можете сослаться (он также имеет ссылку на другую полезную документацию), который может помочь вам исправить ваш код [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 голосов
/ 05 июня 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...