Forcer le téléchargement à partir de serveurs amazon s3

J'ai été le développement d'une nouvelle application web qui s'appuie sur Amazon S3 les serveurs en tant que système de stockage, et Codeiginter que le framework PHP.

J'ai besoin de la force du fichier à télécharger lorsque le lien est cliqué. L'URL d'origine ressemble à ceci:

http://www.our-web.com/download/do/1.jpg

qui génère un temporaire signé URL pour le fichier réel sur les serveurs Amazon S3 comme ceci:

http://main_bucket.s3.amazonaws.com/post/1/1.jpg?AWSAccessKeyId=AKIAJEOQKYPKC3CCU5RA&Expires=1305395426&Signature=iuzCdA22gImLK192%2BMAhk8OkAY8%3D

J'ai besoin de faire le fichier de commencer le téléchargement de la vraie Amazone URL dès que l'utilisateur clique sur le lien.

J'ai deux façons de le faire:

  1. Utilisation redirect() qui va ouvrir le fichier n'est pas le télécharger; ou
  2. Modifier les en-têtes comme ce code:
    header('Content-type: application/force-download');
    header('Content-Disposition: attachment; filename=' . $file_name);
    header('Content-Transfer-Encoding: binary');
    header('Expires: 4000');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($generated_file));
    
    readfile($generated_file);

Malheureusement, les deux façons de ne pas m'aider. La deuxième méthode causes de la télécharger à venir à partir de mon site et de ne pas partir directement d'Amazon.

Comment puis-je forcer le fichier à télécharger directement à partir de la les serveurs Amazon S3, et non pas à partir de mon site web?

source d'informationauteur Khaled