При использовании Google Cloud Storage возникает ошибка 500 на веб-сайте, размещенном на сервере Amazon

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

Есть ли способ решить эту проблему? Потому что моя идея состоит в том, чтобы попытаться использовать простую форму для людей, чтобы загружать и загружать изображения через мой веб-сайт, но в основном документы Google указывают на то, что это можно сделать локально. Ниже предоставлен мой код.

p/s: ведро может быть создано, когда я ввожу новое имя, но когда я набираю то же имя, оно возвращает ошибку 500 вместо избыточной фатальной ошибки создания имени.

Ошибка 500 определенно является ошибкой аутентификации. Вы должны убедиться, что разрешения для вашей учетной записи службы достаточны или каталог ключей json действителен.

SeungwooLee 24.12.2020 02:25

Вы хотите смонтировать корзину GCS на другой сервер или хотите только переместить файлы из корзины на другой сервер?

Mahboob 24.12.2020 02:40

@ kallusis369 Привет, мне удалось создать корзину, добавив 'keyFilePath'=>'mykey.json' в storageClient(), но это может сработать только один раз. Есть ли какой-нибудь постоянный способ сделать это?

Cracker Rex 24.12.2020 02:43

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

Cracker Rex 24.12.2020 02:45

@RexYou Вы можете подписаться на это, если хотите смонтировать корзину в системах Linux или MacOS.

Mahboob 24.12.2020 02:51

@RexYou Если вы хотите, чтобы люди могли загружать файл ведра напрямую, вам следует использовать подписанный URL-адрес.

SeungwooLee 24.12.2020 02:57

@Mahboob на самом деле я хочу, чтобы пользователь мог изменять свою корзину и файлы через мой образец веб-сайта, поэтому после того, как я создал локальные файлы, я переместил все файлы на свой сервер, но он продолжает появляться с ошибкой 500. Могу ли я узнать, есть ли способы избежать этой ошибки?

Cracker Rex 24.12.2020 03:16

@ kallusis369 kallusis369 это хороший вариант, но я стараюсь позволить пользователю обрабатывать его самостоятельно, а не продолжать звонить мне, чтобы сгенерировать для него ключ. Моя текущая страница может создать новое ведро после того, как я продолжаю менять имя ведра, но это не привело к фатальной ошибке, созданной упомянутым ведром. Есть ли способ решить эту проблему?

Cracker Rex 24.12.2020 03:17

@RexYou Я подозреваю, что причиной проблемы являются разрешения служебной учетной записи. Какие разрешения есть у вашей служебной учетной записи?

SeungwooLee 24.12.2020 03:38

@ kallusis369 я думал, что это нормальное разрешение. Я просто назначен владельцем проекта. Есть ли какие-либо дополнительные настройки, которые мне нужно настроить для предотвращения ошибки 500?

Cracker Rex 24.12.2020 04:04

@RexYou Тогда ACL могут быть проблемой. Проверьте созданный список ACL сегментов. Он мелкозернистый? или униформа? Если включена детализация, проверьте членов раздела разрешений, зарегистрирована ли ваша учетная запись службы или нет.

SeungwooLee 24.12.2020 05:09

@ kallusis369 извините за поздний ответ. Все, что я создал, детализировано, все учетные записи имеют разрешение владельца проекта. Но мне любопытно одно: если я не разместил свой сайт в облаке Google, значит ли это, что я не могу использовать облачное хранилище Google?

Cracker Rex 24.12.2020 13:49

@RexYou Вы можете использовать объекты GCS для своего веб-сайта, размещенного где угодно. Для этого важно, чтобы вы аутентифицировали свои учетные данные через сервисные учетные записи.

SeungwooLee 25.12.2020 09:58

@ kallusis369 Для текущей учетной записи, которую я использовал, уже выполнена аутентификация, но я обсудил это со службой поддержки GCS, и они подозревают, что ошибка может быть вызвана моим сервером хостинга, который размещен на Amazon. Возможно, мне нужно найти способ отключить ошибку.

Cracker Rex 25.12.2020 15:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
14
240
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

после нескольких дней тестирования мне удалось получить правильную ошибку возврата. Ниже предоставлен мой код, который использует оператор try catch.

try {
     $bucket = $storage->createBucket($bucketName);
     echo 'Bucket ' . $bucket->name() . ' created.';
     return $bucket;

     } catch (Exception $e) {
                    
        echo "<br>";
        echo 'Caught exception: ',  $e->getMessage(), "\n";

  }

Если у вас есть какое-либо связанное решение, пожалуйста, дайте мне знать. Спасибо.

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

Задание шаблона Dataflow Flex поставлено в очередь
Spark-HBase — шаблон GCP (1/3) — как локально упаковать коннектор Hortonworks?
Облако Google gcloud, включающее сервисы API для электронной почты сервисного аккаунта
Невозможно повысить точность транскрипции с помощью повышения адаптации к речи
Отправьте задание pyspark с файлом конфигурации в Dataproc
Как добавить разные метки в отношении результатов запроса разных местоположений с помощью Google Maps JavaScript Api?
Maps JavaScript Api: как поместить информационное окно на каждый динамически созданный маркер с названием места, а маркер установлен с помощью setTimeout ()?
Как я могу ссылаться на значение из одного ресурса Kubernetes при определении другого ресурса
Ошибка пиринга Mongodb Atlas Google Cloud, когда диапазон IP-адресов в локальной сети перекрывается с диапазоном IP-адресов в активном узле
BigQuery — скалярный подзапрос произвел более одного элемента