从S3下载文件失败

时间:2014-09-04 00:33:58

标签: php amazon-web-services amazon-s3

使用脚本时我遇到了一些重大问题,我必须从S3下载文件。

我遇到的问题是,每次我尝试下载文件时,下载都会完美开始,但在下载过程中,文件就会停止。每次。在每个文件上。这些是视频文件,所以很多都是非常大的。不知道该怎么做或如何处理这个问题。这是我的剧本:

<?php
    // other code exists; this is the main download logic
    set_time_limit(0);
    ignore_user_abort(false);
    ini_set('output_buffering', 0);
    ini_set('zlib.output_compression', 0);

    $chunk = 10 * 1024 * 1024; // bytes per chunk (10 MB)

    $fh = fopen($video->getMp4Source(), "rb");

    if ($fh === false) {
        echo "Unable open file";
    }

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header('Expires: 0');
    header('Pragma: public');
    header('Content-Description: File Transfer');
    header('Content-type: MP4');
    header('Content-length: ' . $video->getFileSize());
    header('Content-Disposition: attachment; filename="'.$video->getMp4Source().'"');

    while (!feof($fh)) {
        echo fread($fh, $chunk);

        ob_flush();  // flush output
        flush();
    }

    exit;

我不确定是什么问题,或者为什么会一直发生。没有记录错误,并且文件外部没有发生错误,无法完成下载。我用readfile()尝试了这个,但是它占用了太多的资源而且无论如何都没有完成。

任何帮助都会很棒。

0 个答案:

没有答案