Laravel laravel-google-облачное хранилище NotFoundException

Я использую пакет Laravel-Google-облачное хранилище из github в моем проекте Laravel для загрузки файлов в облачное хранилище Google. У меня есть файл JSON с учетными данными, идентификатором проекта и списком корзин в моем файле .env.

.env файл

GOOGLE_CLOUD_PROJECT_ID='myproject-123456'
GOOGLE_CLOUD_KEY_FILE=/var/www/project/credintials.json
GOOGLE_CLOUD_STORAGE_BUCKET=minisite_event

.json учетные данные

{
  "type": "service_account",
  "project_id": "myproject-123456",
  "private_key_id": "MY_PROJECT_KEY_ID",
  "private_key": "-----BEGIN PRIVATE KEY-----\nTHEWHOLEKEYHEREWITHVERYVERYLONGTEXTLIKEANYOTHERPRIVATEKEYFILE=\n-----END PRIVATE KEY-----\n",
  "client_email": "TEST@PROJECT_ID.iam.gserviceaccount.com",
  "client_id": "99112211221122112211",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/ATESTSTRING.iam.gserviceaccount.com"
}

Конфигурация файловой системы

'gcs' => [
            'driver' => 'gcs',
            'project_id' => env('GOOGLE_CLOUD_PROJECT_ID', 'your-project-id'),
            'key_file' => env('GOOGLE_CLOUD_KEY_FILE', null), // optional: /path/to/service-account.json
            'bucket' => env('GOOGLE_CLOUD_STORAGE_BUCKET', 'your-bucket'),
            'path_prefix' => env('GOOGLE_CLOUD_STORAGE_PATH_PREFIX', null), // optional: /default/path/to/apply/in/bucket
            'storage_api_uri' => env('GOOGLE_CLOUD_STORAGE_API_URI', null), // see: Public URLs below
        ]

В моем Laravel я пытаюсь поместить файл в файловую систему

$disk = Storage::disk('gcs');
$path = $disk->putFile('event_'.$id, $request->file('qqfile'));

Тогда я получаю такую ​​ошибку:

NotFoundException
{
    "error": {
         "errors": [
            {
                "domain": "global",
                "reason": "notFound",
                "message": "Not Found"
            }
         ],
    "code": 404,
    "message": "Not Found"
    }
}

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

вы создали ведро?

jdp 21.03.2018 13:41

Вы установили разрешение на уровне сегмента [cloud.google.com/storage/docs/cloud-console#_bucketpermissi‌ on], чтобы пользователи могли создавать или просматривать объекты в вашем сегменте? Если да, можете ли вы поделиться, какие разрешения вы устанавливаете для своего ведра?

Gonca 30.03.2018 09:37

@ GonçaloAlbino на самом деле мое имя корзины было неправильным :( Я неправильно понял имя папки внутри корзины как имя корзины.

Ariful Haque 30.03.2018 10:40

@ArifulHaque Могу я попросить вас опубликовать решение в качестве ответа?

Gonca 30.03.2018 11:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
1
4
1 499
1

Ответы 1

Вот ответ на решение, как я его исправил. По сути, это не технологическая или программная ошибка. Здесь все было правильно, кроме GOOGLE_CLOUD_STORAGE_BUCKET в файле .env.

На моем рабочем месте GCP контролируется нашим начальником отдела разработки, который также является нашим ведущим DevOp. Я попросил его создать для меня папку репозитория хранилища, чтобы я мог загружать изображения через наше приложение и предоставить мне учетные данные учетной записи службы. Он создал и дал мне имя папки внутри ведра.

I used the folder name instead of bucket name in the .env file. When I show him the code, then he identified that it was wrong bucket name. I've updated the bucket name and everything is working fine.

Мораль:

Если ничего не работает, проверьте общение со всеми, кто имеет отношение к проблеме.

Все еще полезно, проверю на наличие опечаток

Sandy 15.07.2020 12:21

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