2010-09-27 4 views
3

J'essaie d'utiliser EC2 pour compresser certains fichiers stockés dans un compartiment S3. J'ai réussi à faire fonctionner SWFUpload avec PHP et à télécharger les fichiers sur S3. J'ai lu que le meilleur moyen de compresser les fichiers S3 sans encourir d'énormes coûts de transfert est d'utiliser EC2 pour faire face à S3. Après beaucoup d'efforts j'ai réussi à faire fonctionner un serveur EC2 et SSH, mais maintenant je ne sais pas quoi faire à partir d'ici.Utiliser EC2 pour compresser les fichiers S3

Quelle est la meilleure façon de compresser les fichiers S3 et de les remettre dans le seau?

Idéalement, le téléchargement par lots d'un utilisateur déclencherait un SQS, puis je ferais tourner le serveur EC2 une fois par jour pour les compresser tous et les remettre à S3 pour téléchargement. Aucune idée d'où aller à partir d'ici. Des idées?

Répondre

3

Vous devez extraire aws - un outil de ligne de commande pour ec2, s3 et d'autres services AWS. Lorsque vous installez l'outil et que vous configurez vos informations d'identification AWS, il crée des liens symboliques pratiques pour toutes sortes de commandes, y compris s3.

L'idée générale est:

  • télécharger le fichier du seau (s3get <bucket/file>)
  • zipper (gzip <file>)
  • télécharger à nouveau (s3put <file>)

Permettez-moi si vous avez besoin de plus de pointeurs.

Peut-être que vous voulez compresser le fichier en PHP avant de les télécharger? Cela nécessite l'extension zip à installer.

sudo pecl install zip 

Voici un exemple de script:

<?php 
$zip  = new ZipArchive(); 
$filename = "/tmp/" . time() .".zip"; 
if ($zip->open($filename, ZIPARCHIVE::CREATE) !== true) { 
    exit("cannot open <$filename>\n"); 
} 
$zip->addFile('/path/to/uploaded/file'); 
$zip->close(); 

// continue uploading to s3 
+0

Pouvez-vous me dire comment télécharger le fichier de S3? – ehp

Questions connexes