2012-02-03 1 views
3

다음 사항을 결정할 수 있도록 의견을 보내 주시면 감사하겠습니다.결정에 대한 입력 : 아마존 s3 또는 이와 유사한 파일 및 PHP로 파일 호스팅

내 요구 사항 :

  • 나는 공유 서버에서 호스팅되는 사이트를하고 난 내 사용자에게 콘텐츠를 제공하겠습니다. 약 60GB의 콘텐츠 (각각 약 2000 개의 파일 30MB, 사용자는 한 번에 20 개의 파일에만 액세스 할 수 있음)를 사용하면 약 100GB의 월간 대역폭 사용량을 계산합니다.

  • 일단 사용자가 콘텐츠에 등록하면 사용자가 다운로드 할 수있는 링크에 액세스 할 수 있습니다. 그러나 링크가 만료 시간을 늘릴 수있는 가능성과 함께 7 일 만료되기를 바랍니다.

  • 나는 디스크 공간과 대역폭이 아마존 S3 또는 랙 스페이스 클라우드 파일과 같은 서비스에 대한 호출 생각 (또는 대안이?)

  • 은 어떻게 든 만료 링크 (얻을 계획 만료를 관리하려면 나는 S3에 Rackspace가 아닌이 기능이 있다고 생각합니다.) 또는 데이터베이스의 만료일을 제어하고 클라우드와 데이터베이스에 200 개의 파일을 매일 바꿉니다 (사용자가 직접 링크를 복사 한 경우, 다음 날에는 작동하지 않을 것이고, 내 웹 페이지에만 업데이트 된 링크가있을 것입니다.) PHP는 프로그래밍에 사용됩니다.

그래서 어떻게 생각하십니까? 클라우드 파일 호스팅은 갈 수있는 방법입니까? 어느 것? 링크를 관리하는 것이 그렇게 의미가 있거나 프로그래밍을 통해 그렇게하는 것이 어렵습니다 (클라우드 서버로 명령 보내기 ...)

편집 : 일부 호스트 회사는 공유 계획에 무제한 공간과 대역폭을 갖습니다. 나는 그들의 지원 직원에게 물었고 그들은 정말로 "무제한"거래를 존중한다고 말했다. 한 달에 100GB의 전송이 가능하므로주의해야 할 것은 CPU 사용량뿐입니다. 따라서 공유 호스팅을 선택하는 것이 더 좋은 대안 중 하나입니다.

따라야 할 내용 : 이렇게 무제한 계획의 담당자는 주로 공간을 멀티미디어 파일을 호스팅하는 데 사용할 수 없다고 밝혔습니다. 그래서 Amazon S3와 Tom Andersen이 제공 한 솔루션을 사용하기로 결정했습니다.

감사합니다.

답변

1

매일 S3에서 파일의 이름을 바꿀 필요가 없습니다. 비공개로 설정하면 (기본값) 권한이 부여 된 모든 사람에게 하루 또는 한 주간의 시간 제한 URL이 전달됩니다.

링크를 20 분 동안 만 사용하면 사용자가 파일을 다시 다운로드하기 위해 다시 로그인해야합니다. 그렇다면 그들은 당신에게서 얻은 링크를 공유 할조차 수 없습니다.

+0

좋습니다. 마침내 나는이 옵션을 사용했다. – Sunjen

2

나는 개인적으로 이것을 위해 클라우드 기반 솔루션을 갈 필요가 있다고 생각하지 않는다. 조금 비쌉니다. 단순히 전용 서버를 얻을 수 있습니다. 마음에 오는 한 공급자는 최저 수준의 계획 중 일부에 3,000GB/월의 대역폭을 제공합니다. 그것은 10Mbit 업 링크에 있습니다. 20 달러/일 동안 1Gbit 당 10 달러/100Mbps로 100Mbps로 업그레이드 할 수 있습니다. 어떤 이름도 언급하지 않지만 전용 서버를 검색하여 원하는대로 찾을 수 있습니다.

파일 만료의 경우 PHP를 데이터베이스로 지원하여 구현하십시오. 파일을 이동할 필요가 없으며 모든 파일을 웹에서 액세스 할 수없는 디렉토리에 저장하고 PHP 스크립트를 사용하여 링크가 유효한지 확인하고 파일의 내용을 읽은 다음 브라우저. 링크가 유효하지 않은 경우 대신 오류 메시지를 표시 할 수 있습니다. 꽤 단순한 개념이며, 미리 작성된 스크립트를 많이 사용한다고 생각합니다.하지만 필요에 따라 직접 해보는 것이 너무 어렵지 않습니다.

클라우드 호스팅에는 이점이 있지만 지금은 비용이 많이 들며 지리적으로 부하를 분산 시키거나 수천 명의 동시 사용자를 지원하고 클라우드의 탄력성을 필요로하는 계획이 없다면 전용 서버를 사용할 수 있습니다. 서버.

희망이 있습니다.

+1

나는 전용 서버에 대해 생각했지만 가장 싼 가격은 $ 99/mo에서 시작되었다. 언급 된 공간 및 트래픽에 대한 클라우드 호스팅 (파일 만)은 사이트 $ 7 = $ 32에 대해 약 $ 25 + 공유 호스팅입니다. 전용 서버를 설치하고 유지하는 번거 로움을 겪지는 않습니다. – Sunjen

+0

S3를 사용하여 클라우드 경로를 간다면, 그것에 대해서도 배울 수 있습니다. 이는 훌륭한 지식 집합입니다. 그것들은 큰 파일입니다. 누군가가 웹 브라우저 북마크에 링크를 복사 한 다음 파일을 원할 때마다 링크를 클릭하면 괜찮습니까? 그렇지 않다면 더 짧은 만료 URL을 사용하고 사람들이 두 번 다운로드하기 위해 다시 로그인하도록 할 수 있습니다. –

+0

파일 크기가 실제로 크지는 않습니다. 아, 나는 당신이 200 파일, 각각 60GB를 생각했다고 생각합니다. .. 그것은 총 60 GB입니다 :) 나는 다른 대안을 가지고 있습니다. 지금 질문을 편집 중입니다. – Sunjen

2

나는 S3를 말할 수 없지만 Rackspace Cloud 파일과 서버를 사용합니다.

들어오는 대역폭에 대해 비용을 지불하지 않아도되므로 업로드가 매우 저렴합니다.

나는 이런 식으로 할 것 :

  1. 업로드 당신이 CDN은
  2. 활성화와
  3. 공개 컨테이너 만들기 '개인'컨테이너에 필요한 모든 파일을 그건 당신에게 특별한 URL을주지 http://cdn.yourdomain.com 사용자가 파일을 요청
  4. 에서, COPY api operation를 사용 : 같은 http://c3214146.r65.ce3.rackcdn.com
  5. 처럼, 그에게 도메인 지점에 대한 자신의 CNAME DNS 레코드를 확인 long random filename을 사용하여 개인 컨테이너에서 공용 컨테이너로 서버 측 복사본을 만듭니다.
  6. 스토어 앱에서 파일이 만료되면
  7. 를위한 MySQL의 DB에 파일 이름이 마지막으로 MySQL의 테이블에서 레코드를 삭제 있습니다 .. CDN에서 그것을 얻기 위해 다음 DELETE api operationPURGE api operation를 사용합니다.

PURGE 명령으로 .. 시간이 100 % 작동하지 않는다고 들었습니다. 파일을 여분의 날 동안 남겨 둘 수도 있습니다. 문서에만 비상용으로 사용하도록 예약되어 있습니다. 소지품.

편집 : 방금 들었던 일일 한도가 25 회로 제한되었습니다.

그러나 개인적으로 나는 방금 개체에 대한 삭제를 사용하여 CDN에서 즉시 제거했습니다. 요약하면 최악의 경우는 삭제 후 24 시간 동안 일부 CDN 노드에서 파일에 계속 액세스 할 수 있다는 것입니다.

편집 : CDN 노드의 TTL (캐싱 시간)을 변경할 수 있습니다. 기본값은 72 시간이므로 비용을 낮추면 비용이 적게 들지만 CDN의 이점은 느슨하지는 않습니다. 나는 CDN으로 찾을 수

장점은 : 당신은 매우 인기가 있다면 그것은 멀리 미국 서버에서 최종 사용자로부터의 콘텐츠 권리를 밀어하고

  • 위한 슈퍼 빠른 다운로드 시간을 제공

    1. 파일 .. 1000 명의 사람들이 다운로드하려고 할 때 귀하의 사이트를 꺼내지 않을 것입니다. 그들은 모두 그들이 가장 가까운 CDN 노드에 밀어 넣은 복사본을 얻게됩니다.
  • +0

    이름 바꾸기 아이디어에 대한 좋은 대안, 훌륭한 정보 – Sunjen