seferov aws s3 symfony2 bucket上传太慢了

时间:2016-03-02 00:08:01

标签: php symfony amazon-web-services file-upload amazon-s3

我想更快地将mp3文件上传到我的s3存储桶。我正在使用this  束。上传速度太慢,因为上传5MByte需要5分钟。

public function labelAddSongAction($label){

    $start = microtime(true);

    $path = $this->request->files->get('file')->getRealPath();

    $client = $this->get('aws.s3');

    $aws_conn = microtime(true);

    $song = $this->getDoctrine()->getRepository("WebsiteDeviceBundle:Labels")->addSong(
        $label,
        $this->request->get('title'),
        $this->request->get('artist'),
        $this->request->get('album'),
        $this->request->get('genre'),
        null,
        $this->request->get('duration'),
        $this->request->get('hash')
    );

    $db = microtime(true);

    $result = $client->putObject(array(
        'Bucket' => "bucket",
        'Key'    => 'masters-'.$song->getId().".".$this->request->files->get('file')->getClientOriginalExtension(),
        'SourceFile'   => $path
    ));

    $putobj = microtime(true);

    //dboperation with the result

    $end = microtime(true);

    die(
        ($aws_conn-$start)." aws conn<br>".
        ($db-$aws_conn)." db<br>".
        ($putobj-$db)." putobj<br>".
        ($end-$putobj)." db2<br>"
    );

}

它有效,但速度太慢。

这是输出时的输出(此尝试是使用3Mbyte文件,因为更多,连接将超时)

  

0.018278121948242 aws conn
  0.014150857925415 db
  2.4144551753998 putobj
  0.0062119960784912 db2

我的费用是在俄勒冈州(小实例),我的s3桶在爱尔兰。我是从意大利上传的(450kbps上传)。直接从aws存储桶控制台上传相同的文件大约需要一分钟。

为了加快速度,您有什么建议? 将我的实例移到爱尔兰会显着改变上传时间吗? 升级实例会比移动它更好吗?

1 个答案:

答案 0 :(得分:0)

将我的桶移到俄勒冈州(运行实例的地方)后,输出

  

0.017653942108154 aws conn
  0.015467882156372 db
  0.36472797393799 putobj
  0.006134033203125 db2

5Mb文件(不到一分钟)。仍然很慢,但也许这次取决于我的上传/下载互联网连接速度以及我在意大利和服务器位于俄勒冈州的事实。

我的操作的服务器执行时间正常。