Проблема с загрузкой Laravel 5.3 Amazon s3

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

Я пытаюсь загрузить файл (pdf), который был отправлен через форму, в мою корзину «horsebeach» на s3, после нажатия кнопки «Отправить» в форме страница просто зависает.

Вот мой код загрузки:

 $file = $request->file('attachment');
 $s3 = Storage::disk('s3');
 $s3->put($file->hashName(), file_get_contents($file));

Внутри моего EventController:

public function newEvent(Request $request){
      // in here
}

Переход на локальное хранилище работает нормально, и файл хранится в моем хранилище приложений.

Вот моя форма, которая помогает:

<form action="{{URL::to('events/new')}}" method="post" enctype="multipart/form-data">
    {{ csrf_field() }}
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Event Title:</label>
            </div>
            <div class="span10">
                <input type="text" name="event-title" placeholder="Event Title" class="span11"/>
            </div>
        </div>
    </div>
    @if ($errors->has('event-title'))
    <span class="help-block">
        <strong>{{ $errors->first('event-title') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Begin Date:</label>
            </div>
            <div class="span2">
                <input type="text" name="begin-date" placeholder="e.g 27-02-2016" class="span11 dpicker">
            </div>
        </div>
    </div>
    @if ($errors->has('begin-date'))
    <span class="help-block">
        <strong>{{ $errors->first('begin-date') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">End Date:</label>
            </div>
            <div class="span2">
                <input type="text" name="end-date" placeholder="e.g 27-02-2016" class="span11 dpicker">
            </div>
        </div>
    </div>
    @if ($errors->has('end-date'))
    <span class="help-block">
        <strong>{{ $errors->first('end-date') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Location:</label>
            </div>
            <div class="span10">
                <input type="text" name="location" placeholder="e.g Dave's house" class="span11"/>
            </div>
        </div>
    </div>
    @if ($errors->has('location'))
    <span class="help-block">
        <strong>{{ $errors->first('location') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Fee:</label>
            </div>
            <div class="span10">
                <div class="input-prepend">
                    <span class="add-on">£ </span> <input type="text" id='fee' name="fee" placeholder="2000" style="width: 87%">
                </div>
            </div>
        </div>
    </div>
    @if ($errors->has('fee'))
    <span class="help-block">
        <strong>{{ $errors->first('fee') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Colour:</label>
            </div>
            <div class="span10">
                <div class="input-prepend">
                    <input type="text" name="colour" placeholder="" id="color1" class="color1">
                </div>
            </div>
        </div>
    </div>
    @if ($errors->has('colour'))
    <span class="help-block">
        <strong>{{ $errors->first('colour') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Description:</label>
            </div>
            <div class="span10">
                <textarea rows="3" name="description" placeholder="What's going down?" class="span11 elastic"></textarea>
            </div>
        </div>
    </div>
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Confirmed?</label>
            </div>
            <div class="span10">
                <input type="checkbox" name="confirmed" class="radio1">
            </div>
        </div>
    </div>
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Attachments:</label>
            </div>
            <div class="span10">
                <input id="fileupload" type="file" name="attachment"/>
            </div>
        </div>
    </div>
    <div class="form_inputs">
        <input type="submit" name="create-event" value="Create Event" class="btn btn-info"/>
    </div>
</form>

Файл конфигурации:

    's3' => [
        'driver' => 's3',
        'key'    => env('AWS_KEY'),
        'secret' => env('AWS_SECRET'),
        'region' => env('AWS_LOCATION'),
        'bucket' => 'horsebeach',
    ],

композитор.json:

"league/flysystem-aws-s3-v3": "~1.0"

person Ryan Kennedy    schedule 10.09.2016    source источник


Ответы (1)


Вы обязательно втянули aws/aws-sdk-php-laravel?

В моем проекте установлено следующее:

    "aws/aws-sdk-php-laravel": "^3.1",
    "graham-campbell/flysystem": "^3.0",
    "league/flysystem-aws-s3-v3":"~1.0",

Кроме того, следите за своим storage/logs/laravel.log, чтобы увидеть, что происходит.

person Taylor    schedule 10.09.2016
comment
Спасибо за помощь, у меня есть такие же требования в моем composer.json. После хвоста я заметил это «[2016-09-10 23:25:27] local.ERROR: исключение «Aws\S3\Exception\S3Exception» с сообщением «Ошибка выполнения ListObjects на s3.ireland.amazonaws.com/; Ошибка HTTP AWS: ошибка cURL 7: не удалось подключиться к порту 443 s3.ireland.amazonaws.com: время ожидания операции истекло (см. curl.haxx.se/libcurl/c/libcurl-errors.html)'' - person Ryan Kennedy; 11.09.2016
comment
Ошибка тайм-аута, поэтому убедитесь, что ваш ключ, секрет и регион указаны правильно в вашем .env - person Taylor; 11.09.2016
comment
Хорошо, я понял, глупая ошибка на самом деле. В качестве региона у меня была Ирландия, а потом меня осенило, что регион на самом деле eu-west-1 для Ирландии. Теперь все работает нормально. - person Ryan Kennedy; 11.09.2016