Usuário que recebe downloads parciais

1

Algumas informações: Eu gerencio um site de vídeo de estratégia de poker baseado em assinatura. Nossos vídeos variam de 30 minutos a 80 minutos e de 20 MB a 500 MB. O site está em um servidor compartilhado com hostmonster.com

Um dos meus usuários está tendo problemas para baixar alguns dos arquivos de vídeo maiores. Ele relata problemas com mais de 100MB. Basicamente, ele só recebe parte do arquivo, o que significa que o vídeo pára antes do final. Ele tentou vários computadores em vários locais. Ele relata que ele é capaz de baixar com sucesso arquivos de 500MB de outros sites.

Ele está usando o Internet Explorer (versão desconhecida) como seu navegador. Eu sugeri que ele experimentasse o Firefox ou o Chrome para ver se seus gerenciadores de downloads funcionam melhor para ele, mas até o momento não ouvi nada de volta.

Ele também relatou que seus downloads não reportam nenhum tamanho de arquivo. Eu vejo a mesma coisa (nenhum arquivo relatado), mas não tive problemas com os downloads.

Nós passamos os downloads através de um script php que verifica as informações de login e registra o download em nosso banco de dados antes de retornar o arquivo. Eu suspeito que é por isso que não há nenhum arquivo reportado.

O que mais devo perguntar ao usuário? Que outras coisas ele ou eu poderíamos tentar?

    
por Jeffrey Blake 10.04.2010 / 02:24

3 respostas

1

O problema foi finalmente resolvido quando comecei a alterar as configurações de configuração do servidor, a partir de respostas à pergunta do StackOverflow ( link )

Olhando mais para o problema do tamanho do arquivo, descobri que o tamanho estava sendo definido corretamente no script, mas isso não estava sendo refletido nos cabeçalhos retornados ao navegador. Em vez disso, os cabeçalhos que estavam sendo devolvidos eram:

http://www.grinderschool.com/download_video_test.php?t=KillsAids021&format=wmv

GET /download_video_test.php?t=KillsAids021&format=wmv HTTP/1.1
Host: www.grinderschool.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: style_cookie=printonly; phpbb3_7c544_u=2; phpbb3_7c544_k=44b832912e5f887d; phpbb3_7c544_sid=e8852df42e08cc1b2250300c2897f78f; __utma=174624884.2719561324781918700.1251850714.1270986325.1270989003.575; __utmz=174624884.1264524375.411.12.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=low%20stakes%20poker%20videos; phpbb3_cmviy_k=; phpbb3_cmviy_u=2; phpbb3_cmviy_sid=d8df5c0943863004ca40ef9c392d371d; __utmb=174624884.4.10.1270989003; __utmc=174624884

HTTP/1.1 200 OK
Date: Sun, 11 Apr 2010 12:58:02 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.11
Content-Disposition: attachment; filename=KillsAids021.wmv
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=10, max=30
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: video/x-ms-wmv

No final, descobriu-se que o problema era a compressão gzip, que estava sendo aplicada automaticamente pelo meu servidor web para qualquer conteúdo gerado pelo php. Abaixo estão os passos que tomei para corrigi-lo:

Primeiro, eu estabeleci um novo php.ini para controlar minha pasta individual no servidor compartilhado. Então eu confirmei que meu arquivo php.ini estava configurado com zlib.output_compression = Off Isso não resolveu isso.

Em seguida, observei as configurações específicas do Apache. Como é um servidor compartilhado, não consegui acessar diretamente nenhum dos arquivos de configuração do Apache, mas consegui controlar como eu queria que meu site fosse manipulado, criando um arquivo .htaccess e adicionando a linha: SetEnvIfNoCase Request_URI \.php$ no-gzip dont-vary

Com esta linha, nenhum dos meus php será comprimido. Isso fez o truque. A desvantagem desta solução é que isso resultará em tamanhos maiores de arquivos e uso de largura de banda para as páginas php no meu site. Uma vantagem positiva é que isso reduzirá nosso consumo de CPU (que é o único fator de estar em um servidor compartilhado que tem sido um fator limitante até agora). No final, esta é definitivamente uma mudança bem vinda!

    
por 11.04.2010 / 19:33
0

Por causa da aparência extremamente baixa deste problema, eu sugiro, isso é algo a ver com o acesso à internet do usuário específico. Você nos disse que o usuário tentou de vários computadores. Qual foi o resultado desse teste? Funcionou de outras máquinas?

    
por 10.04.2010 / 03:33
0

Experimentar outros navegadores ou gerenciadores de downloads não funcionou. No final, tive o usuário tentar downloads diretos e que fez o truque. Então, aparentemente, o problema está em algum lugar em nosso script de armazenamento de arquivos baseado em php.

Estou marcando essa pergunta para o ServerFault. Se eu não conseguir descobrir o problema com o script, posso postar novamente no StackOverflow.

    
por 11.04.2010 / 13:57