2011-07-18 4 views
0

J'ai un problème assez simple et une erreur très ennuyante. Je veux permettre à certains utilisateurs de télécharger des images que je vais stocker sur Amazon S3. J'ai écrit un uploadscript qui fonctionne bien quand je le nourris de petites images, mais quand les images sont grandes ~ 1mb, le script s'arrête.Le téléchargement sur Amazon S3 dépasse le temps d'exécution maximum

Je pense que cela a quelque chose à voir avec le script en attente d'une réponse d'Amazon, puis expire parce que l'image est téléchargée, mais le reste du uploadscript est ignoré (insertion dans DB).

Je suis tombé sur cette question How to sequence events in PHP for uploading files to amazon S3 qui est un peu similaire à mon problème mais c'est un peu plus simple (j'espère). J'utilise le jumloader et la classe amazon s3 pour php.

Ceci est la ligne où le script arrête et ne pas aller plus loin

S3::putObject($full, 'bucket_name', $path, S3::ACL_PRIVATE) 

Y at-il Maby une certaine façon de simplement instancier le téléchargement de mon serveur à S3 et juste Excecute le reste du code (si le téléchargement est asynchrone)?

Répondre

1

Augmenter le temps limite:

set_time_limit($seconds);

http://www.php.net/set_time_limit

Si le délai est trop long pour l'utilisateur d'attendre raisonnablement, ajouter le travail à une file d'attente et d'utiliser une tâche planifiée (tâche cron) pour exécuter un script php périodiquement à des téléchargements d'action.

+0

Merci, je sais que c'est une possibilité, mais que faire si le fichier à télécharger est ~ 2 Go? Je ne sais pas combien de temps ça prend? Je suppose que je pourrais utiliser set_time_limit (0) ...? –

+0

J'ai mis à jour ma réponse –

+0

Merci, je suppose que c'est le chemin à parcourir. –

Questions connexes