簡體   English   中英

上行鏈路()拒絕PHP S3權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM