Php Laravel Voyager/S3存储-can和#x27;我无法取回阿凡达

Php Laravel Voyager/S3存储-can和#x27;我无法取回阿凡达,php,laravel,amazon-s3,voyager,Php,Laravel,Amazon S3,Voyager,我已经设置了我的laravel/voyager,以便它将用户头像上传到S3。 上载成功,但用户头像已损坏。我得了403分。怎么了 config/voyager.php storage' => [ 'disk' => 's3', ], 's3' => [ 'driver' => 's3', 'key' => env('S3_ACCESS_KEY_ID'), 'secret' => env('S3_SECRET_ACCESS_KEY'),

我已经设置了我的laravel/voyager,以便它将用户头像上传到S3。 上载成功,但用户头像已损坏。我得了403分。怎么了

config/voyager.php

storage' => [
  'disk' => 's3',
],
's3' => [
   'driver' => 's3',
   'key' => env('S3_ACCESS_KEY_ID'),
   'secret' => env('S3_SECRET_ACCESS_KEY'),
   'region' => env('REGION'),
   'bucket' => env('BUCKET')
],
config/filesystems.php

storage' => [
  'disk' => 's3',
],
's3' => [
   'driver' => 's3',
   'key' => env('S3_ACCESS_KEY_ID'),
   'secret' => env('S3_SECRET_ACCESS_KEY'),
   'region' => env('REGION'),
   'bucket' => env('BUCKET')
],
.env

S3_ACCESS_KEY_ID=accesskeyid
S3_SECRET_ACCESS_KEY=accesskey
BUCKET=bucket
REGION=region

您需要确保S3存储桶可以公开访问。否则,您将无法在没有令牌的情况下查看图像。

当您尝试上载新图像时,基本上需要做的是将可见性设置为public,否则您将获得503

Storage::disk('s3')->setVisibility($image,'public');
如果映像或文件夹已经存在,则需要将S3控制台中的可见性更改为public

或者另一种方法是将config/filesystems.php文件中的可见性设置为public

'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'),
            'endpoint' => env('AWS_ENDPOINT'),
            'visibility' => 'public'
        ],

希望这可以帮助任何人。

您在数据库中的图像路径是什么?