にアップロードされた後にローカルファイルを削除することができません私はAWS S3にそれをアップロードした直後ローカルディレクトリからファイルを削除しようとしています。私がVagrantで実行すると、エラー=テキストファイル:ビジー状態になり、xamppで実行するとエラーが発生します:パーミッションが拒否されました。何らかの理由でAWS S3 PutObjectメソッドがファイルハンドルを解放していません。私はs3オブジェクトの設定を解除しようとしましたが、うまくいきませんでした。ここでLaravelとAWS PHP SDK - それは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);
それは非常にOS依存です、PHPは動作をほとんど制御していません。開発ボックスでそれを動作させても、展開時に動作するわけではありません。一時ファイルを使用するか、cronジョブを使用して削除するほうがよいでしょう。 – wayne