2010-12-16 2 views
1

EdgeCast 또는 Amazon S3를 사용하여 업로드 된 이미지를 저장해야하는 웹 응용 프로그램이 있습니다. 이렇게하려면 먼저 EdgeCast/S3에 해당 이미지를 다시 업로드해야합니다.파일을 스토리지 서비스에 업로드하는 가장 좋은 방법은 무엇입니까? (Amazon S3 또는 EdgeCast)

  1. 원하는 EdgeCast/S3 API를 사용하여 이미지를 업로드 할 것 인라인 컬 다시 업로드를 수행 : 내가 생각할 수있는 옵션이 있습니다. 단점은 동시 업로드로 인해 서버로드가 엄청날 것입니다.
  2. 대기열을 다시 업로드. 나는 그것이 가능하다는 것을 안다. 그러나 나는 그것을하는 방법을 모른다.
  3. 다시 업로드하지 말고 클라이언트 쪽에서에 직접 을 업로드하여 EdgeCast/S3에 업로드하지 마십시오.
  4. 마운트 EdgeCast의/S3의 FTP를 파일 시스템에 넣은 다음 업로드 한 파일을 복사하여 FTP 데몬이 나머지 작업을하도록합니다.

어떤 것이 가장 좋은 해결책이며 다른 것들이 있습니까?는 나는 1 또는 2

편집 의심 : 내 응용 프로그램은 PHP에서 EdgeCast에 대한

+0

edgecast 태그가 추가되었습니다. 지금 당신의 이미지는 어디에 있습니까? 업로드 할 언어는 무엇입니까 (bash 스크립트 일지라도 어딘가에서 말을해야합니다). –

+0

PHP로 업로드하고 싶습니다 –

답변

3

확실하지하지만 난 아마존 S3와 직접 파일을 게시했다 이렇게하는 가장 좋은 방법을 알고 파일 서버 http://doc.s3.amazonaws.com/proposals/post.html

이 방법을 사용하면 폴더 형식, 파일 이름, 공개 키, 타임 스탬프 등과 같은 일부 필드를 HTML 형식으로 제공하여 보안이 유지되고 서버에만 업로드 할 수 있습니다. 업로드 된 페이지가 성공적으로 리디렉션되면 서버는 브라우저를 리디렉션합니다. 쿼리 문자열을 검사하여 업로드가 성공했는지 여부를 확인하고 DB에 FileID를 기록 할 수 있습니다.

서버의 부하를 줄이고 사용자에게 더 빠른 경험을 제공하지만 업로드가 성공했지만 DB 삽입이 실패하면 파일이 고아가 될 수 있습니다.

+0

비밀 키를 공개 할 필요가 없습니까? –

+0

이유가 없습니다! 그렇다면 그것은 비밀이 아닙니다.해시를 생성하기 위해 비밀 키를 사용하고, 해시를 S3에 보내야합니다. 해쉬를 인증하기 위해 비밀 키를 사용합니다. – Daveo

+0

다음은 php for howto의 튜토리얼입니다 : http://www.ioncannon.net/programming/1539/direct-browser-uploading-amazon-s3-cors-fileapi-xhr2-and-signed-puts/검색을 원할 경우 "amazon s3 CORS"를 검색하면 팝업되는 할당량이 있어야합니다. – LudgerP

0

나는 임시 디렉토리에 파일을 업로드 한 다음 업로드 프로세스가 최종 사용자에게 더 이상 걸리지 않도록 AWT에 PUT의 파일을 실행하는 cron 스크립트를 제공합니다.

1

EdgeCast 저장소는 저장소 서버의 콘텐츠를 자동으로 동기화하기 위해 Rsync/sFTP 구성을 지원합니다. 또한 EdgeCast는 "역 프록시"또는 "고객 원본"구성을 지원하여 다른 웹 서버의 콘텐츠를 캐시로 자동으로 가져옵니다. S3를이 Customer-origin 위치로 사용하거나 EdgeCast 자체 Cloud Storage 서비스 또는 EdgeCast 네트워크 외부의 다른 웹 서버를 사용할 수 있습니다.

0

AWS는 이것을 수행하기 위해 SDK for PHP을 제공합니다. 멀티 파트 업로드를 지원하기 때문에 개발자에게 좋은 소식입니다.

PHP 용 AWS SDK는 재시도 논리도 수행하며 (Multipart를 사용하는 경우) 실패한 업로드를 재개 할 수 있습니다.

관련 문제