EC2マイクロインスタンスを介してAmazonS3プライベートオブジェクトをダウンロードしようとしています(undesigned.org.za S3 PHPクラスを使用)。これが私のスクリプトです。実際にはスクリプトは機能していますが、ダウンロードを開始するのに数秒かかる場合があります。使用したヘッダーにはあまり自信がありません。すべての提案は本当にありがたいです。
同じリージョンにある私のS3バケットとEC2インスタンス(現在はそのマイクロインスタンス)。
if (!class_exists('S3')) require_once '../include/S3.php';
$s3 = new S3("XXXXXXXXXXXXXX", "xxxxxxxxxxxxxx");
$fileX=filename.mp3;// File Name
$bucket='mybucket';
$uri="username/public/filename.mp3"; // File path inside bucket
//undesigned.org.za S3 PHP Class
$info = $s3->getObjectInfo($bucket, $uri);
$file = S3::getAuthenticatedURL($bucket, $uri, 3600);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='."\"$fileX\"");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: max-age=28800');
header('Expires:' . gmdate('D, d M Y H:i:s T', strtotime('+8 hours')));
header('Content-Length: '.$info[size]);
ob_clean();
flush();
readfile($file);
私の質問は、
- 応答時間が長くなるのはなぜですか?
- 正しいヘッダーを使用しましたか?
- これを行うのに最適なS3PHPクラスは何ですか?