Драйвер файловой системы Laravel s3 не использует переменную AWS_URL

Я пытаюсь загрузить файл в хранилище объектов, совместимое с s3 (я использую Minio), но клиент aws в laravel не использует URL-адрес, указанный в моей переменной .env AWS_URL.

AWS_URL=http://192.168.1.22:9000

Я использую встроенный сервер artisan и уже пытался очистить кеш конфигурации.

Мой текущий код:

$request->videoFile->store('videoFiles', 's3');

Я получаю сообщение об ошибке, которое показывает, что laravel пытается подключиться к неправильному URL-адресу.

Error executing "PutObject" on "https://myawesomebucket.s3.amazonaws.com/videoFiles/bs20uHPxkprbG6fC6e1B6pHtBiQxwgTmrrDdGP2e.mp4"; 

person hugo4715    schedule 05.05.2019    source источник


Ответы (2)


Запись s3 по умолчанию в filesystems.php выглядит следующим образом:

    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
        'url' => env('AWS_URL'),
    ],

Хотя это, кажется, работало с minio в какой-то момент, теперь свойство url, похоже, полностью игнорируется.

Вот модифицированный конфиг, который работает как с minio, так и с S3:

    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
        'url' => env('AWS_URL'),

        // the below 'endpoint' url is actually used:
        'endpoint' => env('AWS_URL'),
        // prevent bucket name from being added to the hostname:
        'bucket_endpoint' => false,
        // use older urls:
        'use_path_style_endpoint' => true,
    ],

Я ссылался на эти руководства, чтобы найти эту информацию:

person AlbinoDrought    schedule 14.08.2019

Иногда у меня были проблемы с файлом env. Я не уверен, что здесь достаточно информации, чтобы ответить на ваш вопрос, но я бы начал с dd(AWS_URL) и посмотрел, что там на самом деле получается. Может быть, поставить кавычки вокруг

AWS_URL="http://192.168.1.22:9000"

Если это не сработает, я добавил что-то в файл конфигурации:

'url' => 'http://192.168.1.22:9000'
person ajw4sk    schedule 05.05.2019