我在 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');
我面临这个问题,因为管理员在一个帐户上创建了多个存储桶。当他分成不同的账户时,一切都开始运转。
另一种方法是检查您的存储桶访问权限(公有/私有)。如果您的存储桶是私有的,则从代码中删除“公有”
Storage::disk('s3')->put('path','file'); //code is like this.
尝试从IAM更改对S3存储桶的访问。一旦我更新了正确的访问权限,它就对我有用了。