Mar*_*nJH 2 curl host file-upload amazon-s3 laravel-5
我在我的本地环境中,即将使用Laravel 5.1 Flysystem/Filesystem将文件上传到AWS s3.
所有设置都已完成.我创建了一个测试表单,我正在尝试上传文件.当我按下提交按钮时,我绝对得到了这个,只有太可爱的错误:
S3Exception in WrappedHttpHandler.php line 152:
Error executing "HeadObject" on "https://s3.Frankfurt.amazonaws.com/bucketName/resource-6";
AWS HTTP error: cURL error 6: Couldn't resolve host name
Run Code Online (Sandbox Code Playgroud)
Sooo ......我哪里出错了?这是我的代码:
表格/视图
{!! Form::open([
'route' => 'resource-store',
'class' => 'uploadResource',
'files' => true
]) !!}
{!! Form::label('Resource title') !!}
{!! Form::text('title', null, ['placeholder'=>'Descriptive title']) !!}
{!! Form::label('Your Resource') !!}
{!! Form::file('resource', null) !!}
{!! Form::submit('Create Resource') !!}
{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)
控制器存储方法
public function store(ResourceRequest $request, $id)
{
/* Store entry in DB */
$resource = new Resource();
$resource->title = $request->title;
$resource->save();
/* Process, Validate & Store Image */
Storage::put(
'resource-'.$resource->id,
$resource
);
/* Success message */
session()->flash('message', $request->title . ' er lavet/uploadet!');
return redirect()->route('resource.index');
}
Run Code Online (Sandbox Code Playgroud)
数据库配置
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'port' => 33060,
],
Run Code Online (Sandbox Code Playgroud)
CONFIG/FILESYSTEMS.PHP
return [
'default' => 's3',
'cloud' => 's3',
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path().'/app',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
'rackspace' => [
'driver' => 'rackspace',
'username' => 'your-username',
'key' => 'your-key',
'container' => 'your-container',
'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/',
'region' => 'IAD',
],
],
];
Run Code Online (Sandbox Code Playgroud)
典型.阅读Paul Robinson的这篇文章后意识到出了什么问题.
我把我的s3区域设置为Frankfurt
.虽然我区果然是Frankfurt
,我需要把它称为eu-central-1
我的S3区域在config/filesystems.php
.
之后,我可以继续修复Storage::put()
方法中的下一个错误.
错误
Storage::put(
'resource-'.$resource->id,
$resource
);
Run Code Online (Sandbox Code Playgroud)
正确
Storage::put(
'resource-'.$resource->id,
file_get_contents($request->file('resource'))
);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助别人.有一个很棒的一天/晚/等.
归档时间: |
|
查看次数: |
3090 次 |
最近记录: |