2015-01-06 2 views
0

내 앱 사용자는 파일 (크고 작은)을 업로드합니다. 나는 파일을 S3 또는 FTP 또는 다른 스토리지 서비스에 저장하는 것을 좋아합니다.PHP를 사용하여 백그라운드에서 파일을 비동기식으로 업로드하는 가장 좋은 방법은 무엇입니까?

내 계획은 AJAX (진행률 표시 줄 포함)가있는 클라이언트에서 내 PHP 서버로 파일을 업로드 한 다음 대상 저장소로 백그라운드로 전송하는 것입니다. 마지막 부분을 백그라운드에서 비동기 적으로 수행하려고합니다. 또한 서버에서 스토리지로 파일을 업로드 한 후 데이터베이스 업데이트 및 정리와 같은 일부 작업을 수행해야합니다.

이전의 접근 방식은 nohup (예 : How can I use nohup to run process as a background process in linux?)과 비슷하지만 몇 가지 단점이 있으며 사용하지 않는 편이 좋습니다.

저는 Laravel을 사용 중이므로 Beanstalkd로 큐를 생각하고 있습니다. 나는 대기열이 이메일, 이미지 처리 및 이와 유사한 것들을 보내기에 좋음을 알고 있지만 전에 사용하지 않았기 때문에 배경 파일 업로드에 좋은지 잘 모릅니다. 좋은 접근 방법인가요? 아니면 더 좋은 방법이 있을까요?

+0

[laravel.io] (http://laravel.io/forum/03-18-2014-best-logic-for-implmenting-upload-progress-bar)를 사용해 보았습니다. jQuery 파일 업로드를 사용하는 것이 좋습니다 – DouglasDC3

+0

클라이언트 업로드는 문제가되지 않습니다. 문제는 PHP 서버에서 S3과 같은 원격 저장소로 백그라운드 업로드입니다. – TheJohnny

+0

대기열 사용은 여전히 ​​전체 파일을 대기열로 보내거나 tmp 위치에 저장해야하기 때문에 솔루션이 아닙니다. 당신이 할 수있는 유일한 일은 큐 트리거가 S3에 업로드하는 것보다 tmp 위치에 저장하는 것입니다. – DouglasDC3

답변

0

Dispatcher에서 시도해 볼 수 있습니다. 여기를보세요 :

https://github.com/Indatus/dispatcher

을 웹 사이트에서 "Dispatcher가 당신이 배치 할 때 당신의 crontab을 터치 할 필요가 없습니다 귀하의 프로젝트 내에서 장인 명령을 예약하는 데 사용되는 Laravel 장인 명령 스케줄링 도구입니다."

관련 문제