[英]PHP S3 Permission denied with uplink()
我將文件上傳到AWS S3后嘗試取消鏈接,但我不斷收到Permission denied錯誤。 如果我刪除代碼部分將其上傳到S3,那么它的工作原理。 此外,如果我硬編碼我之前上傳的文件,unlink將刪除該文件。 一旦上傳,我無法刪除當前文件。
if(isset($_FILES['file'])){
//Get File
$file = $_FILES['file'];
$name = $file['name'];
$tmp_name = $file['tmp_name'];
//Get extension
$ext = explode('.', $name);
$ext = strtolower(end($ext));
//create unique name for file
$key = md5(uniqid());
//create temp
$temp_file_name = "{$key}.{$ext}";
$temp_file_path = "uploads/{$temp_file_name}";
//move to local folder
move_uploaded_file($tmp_name, $temp_file_path);
// upload to s3
try{
$s3->putObject([
'Bucket' => $config['s3']['bucket'],
'Key' => "uploads/{$name}",
'Body' => fopen($temp_file_path, 'rb'),
'ACL' => 'public-read'
]);
} catch (S3Exception $e){
die("There was some type of uploading issue " . $e->getMessage());
}
unlink($temp_file_path);
}
這是一個類似於此處發布的問題: PHP + S3:使用unlink刪除文件時權限被拒絕()該人說他通過將nginx服務器部署移動到CentOS來解決這個問題這是我第一次使用AWS S3而無法找到他在說什么 一位朋友毫無困難地運行了相同的代碼,所以我不確定是什么問題。 有完整的文件訪問權限可以運行,並且它可以取消鏈接以前的文件,我知道這不是問題。
任何幫助,將不勝感激。 謝謝
結果我需要使用fclose()。
$body = fopen($temp_file_path, 'rb');
接着:
$s3->putObject([
'Bucket' => $config['s3']['bucket'],
'Key' => "uploads/{$name}",
'Body' => $body,
'ACL' => 'public-read'
]);
之后:
fclose($body);
unlink($temp_file_path);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.