提问者:小点点

从Laravel-5.7在S3中上传文件时获取错误访问拒绝


我在 S3 服务器上上传任何文件时遇到问题。但是相同的配置正在处理不同的项目。没有改变任何概念,也没有改变任何配置。我正在研究 Laravel 5.8 版本。我正在共享代码和错误,请告诉我为什么它会来?

错误

对“https://Cox xxxx . S3 . AP-south-1 . amazonaws . com/upload files/pdf/22222222222222222222222222222222222222222222222222000 _ COLLEGE _ DETAILS _ 1569831261 . pdf”执行“PutObject”时出错;AWS HTTP错误:客户端错误:< code > PUT https://colxxxxx . S3 . AP-south-1 . amazonaws . com/upload files/pdf/2222222/222222 _ COLLEGE _ DETAILS _ 1569831261 . pdf 导致< code>403禁止

AccessDenied访问被拒绝3E7C4E(截断…)访问被拒绝(客户端):访问被拒绝-

文件系统.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')      
    ],

对于S3上的Uplod

    $s3Path ="uploadFiles/pdf/2222222/2222222_COLLEGE_DETAILS_1569831261.pdf";     
    $binary_data = base64_decode($file);
    $pathS3 =Storage::disk('s3')->put($s3Path, $binary_data,'public');

共2个答案

匿名用户

我面临这个问题,因为管理员在一个帐户上创建了多个存储桶。当他分成不同的账户时,一切都开始运转。

另一种方法是检查您的存储桶访问权限(公有/私有)。如果您的存储桶是私有的,则从代码中删除“公有”

Storage::disk('s3')->put('path','file'); //code is like this.

匿名用户

尝试从IAM更改对S3存储桶的访问。一旦我更新了正确的访问权限,它就对我有用了。