天天看點

php aws s3上傳圖檔body,從表格$ _FILE [] multipart上傳AWS php putObject到S3

我将最多4個圖像從多部分表單上傳到apache伺服器 . 我目前正在遷移到Amazon S3進行存儲,我想知道最佳選擇 .

1)我的php腳本目前首先将圖像作為臨時檔案上傳到Ec2伺服器,例如名為phpwG3oTb . 然後我通常會move_uploaded_file重命名它并将其移動到正确的目錄 . 使用AWS PHP SDK for S3我可以看到我可以避免這種情況并使用putObject直接上傳它:

$result = $this -> s3Client -> putObject(array('Bucket' => $this -> bucket, 'Key' => 'file_1', 'SourceFile' => 'phpwG3oTb', 'ACL' => 'public-read);

當我點選這個時,圖像被下載下傳并且沒有顯示在浏覽器中,因為我猜它沒有mime_type . 如果我上傳與image.jpg相同的圖像,它可以正常工作 .

為了避免這種情況,我需要将本地上傳的檔案重命名為image.jpg,然後使用putObject . 我想避免這一步 .

2)下一個可能不是取這個$ _FILE []檔案并将其上傳到Ec2伺服器然後調用putObject . 也許我可以直接從數組記憶體中取出檔案并将其寫入putObject . 我不确定那是怎麼回事 . 我正在考慮類似的僞代碼:

$result = $this -> s3Client -> putObject(array('Bucket' => $this -> bucket, 'Key' => 'file_1', 'SourceFile' => $_FILE[""], 'ACL' => 'public-read);