PHP Classes

Problemas con streaming

Recommend this page to a friend!

      Amazon S3 Stream Wrapper  >  All threads  >  Problemas con streaming  >  (Un) Subscribe thread alerts  
Subject:Problemas con streaming
Summary:No consigo hacer streaming con archivos grandes
Messages:2
Author:rallaet
Date:2008-07-18 10:46:21
Update:2008-07-18 12:43:54
 

  1. Problemas con streaming   Reply   Report abuse  
Picture of rallaet rallaet - 2008-07-18 10:46:21
He probado con archivo pequeños y funciona pero estoy probando con uno de 50mb y no hay manera.

$tmpfile="/var/www/web86/web/pedidos/prueba/31295623/80216.zip";
$fp = fopen( $tmpfile, 'rb' );
$f = fopen('s3://prueba/amiyu3.zip', 'w+r');
while (!feof($fp)) {

$buffer=fread($fp,262144);
fwrite($f, $buffer)or die("No se puede escribir en el fichero");
//echo $buffer;
}
fclose($f);
fclose($fp);

He probado a crear ficheros tal y como viene en los ejemplos y no he tenido ningún problema, en cambio en el ejemplo que te adjunto he tenido problemas con el tamaño del buffer que sólo parece funcionar con hasta 10 bytes de tamaño. ¿Es una restricción? ¿Hay otra forma de hacer streaming?

Muchas gracias

  2. Re: Problemas con streaming   Reply   Report abuse  
Picture of Cesar D. Rodas Cesar D. Rodas - 2008-07-18 12:43:54 - In reply to message 1 from rallaet
La próxima vez trata de escribir en Ingles :P
----
The problem:
"rallaet" wants to streaming large files (i.e 50MB), but in the process it simple die. BTW, it works with smaller files, upto 10 MB.

--
The answer:
Unfortunately Amazon S3 doesn't support streaming files, then, because my class doesn't have any api, just a stream wrapper, i need to save the file in memory and send to amazon when you have closed the file. And there is a memory limitation on php.ini. I will rewrite the class providing an API and optionally registering a wrapper. Then i will create a method to stream large files. I cannot give a deadline for the new version because I'm working hard on GSOC right now.

--
La respuesta:
Desafortunadamente Amazon S3 no soporta hacer streaming de archivos al servidor, entonces, ya que mi clase no tiene un API solo registra un Wrapper, yo tengo que guardar en memoria todo el archivo, luego enviar a amazon cuando se cierra el archivo. Y recuerda que existe una limitacion de memoria en php.ini. Voy a reescribir la clase proveyendo una API y opcionalmente registrando un wrapper. Y ahi voy a proveer una funcion para levantar archivos grandes. No puedo dar una fecha estimada para la nueva version ya que estoy trabajando duro para gsoc