2011-03-28 202 views
3

我正在使用PHP Amazon S3 Class(這似乎是強烈推薦和廣泛使用),並且發現文件上傳的速度與使用命令行s3cmd實用程序相比非常慢。PHP亞馬遜S3上傳速度

例如,同一個20MB的文件花了通過s3cmd2.8秒和周圍54秒通過PHP:

命令行:

s3cmd put archive.tar.gz s3://bucket 

輸出:文件 'archive.tar.gz' 存儲爲S3://bucket/archive.tar.gz(2.8秒,8.07百萬字節/秒23320623個字節)[1 1]

PHP:

$time = time(); 

$s3 = new S3('ACCESS KEY','SECRET KEY'); 
$s3->putObjectFile('archive.tar.gz','bucket','archive.tar.gz'); 

echo 'Done in '.(time()-$time).' seconds'; 

輸出:在54秒

做的是這只是我有,如果使用PHP上傳到S3接受?還是有更好的方法來做到這一點,我錯過了?我只是不明白爲什麼上傳速度會有如此巨大的差異,而且我將來需要用更大的文件來做到這一點,這樣的慢速會產生問題。

回答

7

禁用SSL!

$s3 = new S3('ACCESS KEY','SECRET KEY', false); 

現在它正在沿用。

+0

這是一個不好的解決方案。這意味着你要通過開放的互聯網發送你的密鑰(又名密碼)。此外,SSL不太可能導致2.8 - > 54秒的減速--SSL可能需要幾秒鐘才能啓動,但不會顯着影響文件的上傳速度。 – asuth 2014-01-23 08:00:18

+0

@asuth不,只要SSL是問題,這是一個很好的解決方案。你不是通過開放的互聯網發送密鑰。請參閱http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html - 使用您正在製作的請求的選定元素對祕密進行散列。至於SSL是否會導致經濟放緩,在問題出現的時候,這是造成如此重大差異的唯一因素 - 但我不能否認這可能指出一個更大的問題。 – JoeR 2014-01-23 12:40:44