gpt4 book ai didi

php - AWS S3 Helper上传文件后如何解锁文件?

转载 作者:行者123 更新时间:2023-12-02 00:33:39 40 4
gpt4 key购买 nike

我正在使用official PHP SDKthe official service provider for laravel将图像上传到 Amazon S3。该图像暂时存储在我的服务器上,上传后应删除。以下是我用来上传和删除的代码。

$temp_path = "/screenshot_temp/testing.png";

$client = AWS::createClient('s3');
$result = $client->putObject(array(
'Bucket' => self::$bucketName,
'Key' => 'screenshot/testing.png',
'SourceFile' => $temp_path,
'ACL' => 'public-read'
));
);

chown($temp_path, 777);
unlink($temp_path);

上传成功。我可以通过链接返回看到我的图像,并且可以在亚马逊控制台上看到它。问题是删除失败,错误信息如下:

ErrorException: unlink(... path of my file ...): Permission denied

我确信我的文件权限设置是正确的,并且我可以通过注释掉用于上传到 S3 的代码部分来删除我的文件。所以应该是上传文件时文件被锁定的问题。有没有办法解锁并删除我的文件?

最佳答案

是的,流上传会锁定文件直至完成,请尝试 2​​ 种方法之一,

$client = AWS::createClient('s3');
$fileContent = file_get_contents($temp_path);
$result = $client->putObject(array(
'Bucket' => self::$bucketName,
'Key' => 'screenshot/testing.png',
'Body' => $fileContent,
'ACL' => 'public-read'
));
);

unlink($temp_path);

$client = AWS::createClient('s3');
$fileContent = file_get_contents($temp_path);
$result = $client->putObject(array(
'Bucket' => self::$bucketName,
'Key' => 'screenshot/testing.png',
'Body' => $fileContent,
'ACL' => 'public-read'
));
);

gc_collect_cycles();
unlink($temp_path);

关于php - AWS S3 Helper上传文件后如何解锁文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41395252/

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