我有一个laravel 5.5应用程序部署到由elasticbeanstalk管理的ec2实例。该应用程序的功能之一涉及获取课程文档的表单上传zip存档,解压缩存档,以及将文件存储在存储/ app / public中。
public function updateCourseFolder($file)
{
$folderName = explode('.', $file->getClientOriginalName())[0];
$zip = Zip::open($file); //The Zip class here is an instance of zanysoft/laravel-zip
$zip->extract(storage_path('app/public/courses/'.$this->id));
Storage::putFileAs('public/courses/'.$this->id.'/archives/', $file, Carbon::now()->timestamp.'.zip');
$this->update(['folder_path' => 'storage/courses/'.$this->id.'/'.$folderName ]);
}
我遇到的问题是,在ec2实例上,正在创建文件和目录,其权限立即变得无法访问webapp - 在表单提交时,存储zip的相同控制器操作会启动权限尝试访问刚创建的文件时拒绝错误。
查看解压缩的文件详细信息,它们是使用webapp用户/组创建的(与应用程序中的其他所有内容一致),但与“drwxrwxr-x”相比具有“d-wxr ---- t”权限应用程序中大多数其他内容的权限。
这不是我可以在本地重新创建的问题,仅在我的AWS部署上。