簡體   English   中英

S3 Bucket Amazon問題

[英]S3 Bucket Amazon issue

1)我有上傳表格

2)它將文件上傳到我的本地存儲move_uploaded_file。

3)它使用zend putObject函數將文件移動到s3對象。

一切正常,直到我的文件大小在30Mb到40Mb之間。 問題是,當我嘗試上傳較大的文件(例如80 Mb,100 Mb左右)時,移至s3的文件要花一些時間才能完成上傳。 我的代碼是這樣的:

$orginalPath = APPLICATION_PATH."/../storage/".$fileName;
move_uploaded_file($data['files']['tmp_name'], "$orginalPath");

$s3 = new Zend_Service_Amazon_S3($accessKey, $secretKey);

$s3->putObject($path, file_get_contents($orginalPath),
    array(Zend_Service_Amazon_S3::S3_ACL_HEADER =>Zend_Service_Amazon_S3::S3_ACL_PUBLIC_READ));

您能幫我處理流大文件的問題嗎?

$s3->registerStreamWrapper("s3");


file_put_contents("s3://my-bucket-name/orginal/$fileName", file_get_contents($orginalPath));

但是沒有運氣,移動文件也需要很長時間。

因此,是否有一種有效的方法將文件快速移動到s3存儲桶?

答案是一個工人過程。 您可以在服務器啟動時通過PHP CLI啟動PHP worker腳本,也許在您的機器上運行GearmanClient php擴展名和gearman服務器。 然后,您將后台作業排隊以將文件上傳到S3,而主站點的PHP代碼在發布該作業后返回成功,並且文件在后台愉快地上傳,而前台站點則以快樂的方式繼續上傳。 另一種執行此方法的方法是讓另一台服務器執行所有此任務,而您的主站點仍保持利用率,而無需執行此過程。 我現在正在做。 它運作良好。

您可以考慮使用更直接的POST至S3功能 適用於PHP的AWS開發工具包具有一個類,可幫助生成表單數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM