我将最多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);