我正在使用aws api上传大型视频文件到我的Amazon S3存储桶。
$uploader = new MultipartUploader($s3->getDriver()->getAdapter()->getClient(), $localFullFilePath, [
'bucket' => env('S3_BUCKET'),
'key' => $s3fullFullFilePath,
]);
try {
$result = $uploader->upload();
Log::info("Upload complete");
} catch (MultipartUploadException $e) {
Log::info($e->getMessage());
}
然后我将使用以下代码删除我上传的视频。
foreach ($oldVideos as $oneVideo) {
// $localFullFilePath = $localFilePath . $oneVideo;
unlink($localFullFilePath);
}
我的视频上传成功,但当我尝试删除我的本地文件时,会出现“权限被拒绝”错误。
我确定它不是文件权限错误,因为只有在我将文件上传到S3时才会出现错误。
我认为api在阅读后没有fclose
档案。
您建议任何提示或解决方法吗?
答案 0 :(得分:0)
你是否在地图结构中给了自己许可?这也是上次发生的事情:P
您必须获得上传和发布许可。删除
答案 1 :(得分:0)
你是对的,api没有关闭文件。你可以手动完成:
// open a file
$source = fopen($localFullFilePath, 'rb');
// pass a resource, not a path
$uploader = new MultipartUploader($s3->getDriver()->getAdapter()->getClient(), $source, [
'bucket' => env('S3_BUCKET'),
'key' => $s3fullFullFilePath,
]);
// upload
try {
$result = $uploader->upload();
Log::info("Upload complete");
} catch (MultipartUploadException $e) {
Log::info($e->getMessage());
}
// close
fclose($source);
// now we can remove it