Я новый пользователь для использования платформы облачного хранилища Google. Я успешно создал ведро локально с помощью xampp и composer. Но когда я переместил все файлы на свой сервер, он показывает какую-то ошибку.
Есть ли способ решить эту проблему? Потому что моя идея состоит в том, чтобы попытаться использовать простую форму для людей, чтобы загружать и загружать изображения через мой веб-сайт, но в основном документы Google указывают на то, что это можно сделать локально. Ниже предоставлен мой код.
p/s: ведро может быть создано, когда я ввожу новое имя, но когда я набираю то же имя, оно возвращает ошибку 500 вместо избыточной фатальной ошибки создания имени.
Вы хотите смонтировать корзину GCS на другой сервер или хотите только переместить файлы из корзины на другой сервер?
@ kallusis369 Привет, мне удалось создать корзину, добавив 'keyFilePath'=>'mykey.json' в storageClient(), но это может сработать только один раз. Есть ли какой-нибудь постоянный способ сделать это?
@Mahboob Я хочу смонтировать корзину GCS на своем сервере, чтобы я мог разрешить пользователям загружать и загружать действия с элементами в мою корзину GCS.
@RexYou Вы можете подписаться на это, если хотите смонтировать корзину в системах Linux или MacOS.
@RexYou Если вы хотите, чтобы люди могли загружать файл ведра напрямую, вам следует использовать подписанный URL-адрес.
@Mahboob на самом деле я хочу, чтобы пользователь мог изменять свою корзину и файлы через мой образец веб-сайта, поэтому после того, как я создал локальные файлы, я переместил все файлы на свой сервер, но он продолжает появляться с ошибкой 500. Могу ли я узнать, есть ли способы избежать этой ошибки?
@ kallusis369 kallusis369 это хороший вариант, но я стараюсь позволить пользователю обрабатывать его самостоятельно, а не продолжать звонить мне, чтобы сгенерировать для него ключ. Моя текущая страница может создать новое ведро после того, как я продолжаю менять имя ведра, но это не привело к фатальной ошибке, созданной упомянутым ведром. Есть ли способ решить эту проблему?
@RexYou Я подозреваю, что причиной проблемы являются разрешения служебной учетной записи. Какие разрешения есть у вашей служебной учетной записи?
@ kallusis369 я думал, что это нормальное разрешение. Я просто назначен владельцем проекта. Есть ли какие-либо дополнительные настройки, которые мне нужно настроить для предотвращения ошибки 500?
@RexYou Тогда ACL могут быть проблемой. Проверьте созданный список ACL сегментов. Он мелкозернистый? или униформа? Если включена детализация, проверьте членов раздела разрешений, зарегистрирована ли ваша учетная запись службы или нет.
@ kallusis369 извините за поздний ответ. Все, что я создал, детализировано, все учетные записи имеют разрешение владельца проекта. Но мне любопытно одно: если я не разместил свой сайт в облаке Google, значит ли это, что я не могу использовать облачное хранилище Google?
@RexYou Вы можете использовать объекты GCS для своего веб-сайта, размещенного где угодно. Для этого важно, чтобы вы аутентифицировали свои учетные данные через сервисные учетные записи.
@ kallusis369 Для текущей учетной записи, которую я использовал, уже выполнена аутентификация, но я обсудил это со службой поддержки GCS, и они подозревают, что ошибка может быть вызвана моим сервером хостинга, который размещен на Amazon. Возможно, мне нужно найти способ отключить ошибку.
после нескольких дней тестирования мне удалось получить правильную ошибку возврата. Ниже предоставлен мой код, который использует оператор 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";
}
Если у вас есть какое-либо связанное решение, пожалуйста, дайте мне знать. Спасибо.
Ошибка 500 определенно является ошибкой аутентификации. Вы должны убедиться, что разрешения для вашей учетной записи службы достаточны или каталог ключей json действителен.