gpt4 book ai didi

php - Laravel 和 AWS PHP SDK - 上传到 S3 后无法删除本地文件

转载 作者:可可西里 更新时间:2023-11-01 13:26:02 26 4
gpt4 key购买 nike

我试图在将文件上传到 AWS S3 后立即从本地目录中删除该文件。当我在 Vagrant 上运行它时,我得到一个错误 = Text-file:busy,当我在 xampp 上运行它时,我得到错误:permission denied。出于某种原因,AWS S3 PutObject 方法没有释放文件句柄。我曾尝试取消设置 s3 对象,但没有成功。

代码如下:

    $tempName = public_path().'/path/to/file'

//Initialize AWS
$s3 = AWS::createClient('s3');


//Upload image to AWS

try {
$reponse = $s3->putObject(array(
'Bucket' => 'zotamoda',
'Key' => $productImage->image_folder."/".$productImage->image_name,
'SourceFile' => $tempName,
'ACL' => 'public-read',
));
} catch (S3Exception $e) {
// The AWS error code (e.g., )
echo $e->getAwsErrorCode() . "\n";
// The bucket couldn't be created
echo $e->getMessage() . "\n";
}


//Delete image from temporary location
unlink($tempName);

最佳答案

你可以试试:

Storage::disk('s3')->put($productImage->image_folder."/".$productImage->image_name, file_get_contents($tempName), 'public');
unlink($tempName);

或者,假设 $tempName 是相对于您的项目根目录:

Storage::disk('local')->delete($tempName)

关于php - Laravel 和 AWS PHP SDK - 上传到 S3 后无法删除本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com