我在Laravel 5中将上传文件实现到s3,当上传文件时它会给出错误信息:执行错误\" PutObject \"在...上,我发现它发生是因为url尝试访问是错误的,网址是:
https://{buckets}.{s3 domain}/{buckets}/{filename}
,在s3域之前为什么laravel将桶名称放在url上?正确的网址应该是
https://{s3 domain}/{buckets}/{filename}
,那怎么解决呢?
以下是我的代码:
> $file = $request->file('file');
> $fileName = $file->getClientOriginalName();
> $savedFileName = '/test_buckets/' . date('YmdHis') . '_' . $fileName;
> $s3 = Storage::disk('s3');
> $s3->put($savedFileName, file_get_contents($file), 'public');
答案 0 :(得分:0)
通过删除' public'来自$ s3-> put($ savedFileName,file_get_contents($ file),' public'),它看起来像bug - 当有可选的第三个参数' public'时,它会在网址中的域名前添加bukets名称。