2014-04-20 2 views
4

아마존 s3에 작은 비디오를 업로드 할 iOS 앱을 만들고 있습니다. 동영상은 공개되며 사용자는 각 동영상의 URL을 공유 할 수 있습니다. 스트리밍 비용이 염려됩니다 (예를 들어, 비디오가 바이러스처럼 보일 경우). 대역폭 1GB 당 ~ $ 0.12로,이 비용이 빨리 비쌀 수 있습니다.제한 amazon s3 downloads

이것을 방지하기 위해 각 비디오에 대해 일종의 다운로드 제한을 구현하고 싶습니다. 비디오가 한 달에 일정량 다운로드되면 더 이상 공개되지 않으며 다운로드 할 수 없습니다.

다양한 문서를 살펴본 결과이를 수행하는 좋은 방법을 찾지 못했습니다. 내가 찾은 유일한 해결책은 내 s3 버켓의 로그 파일을 주기적으로 내리고 해당 데이터를 사용하여 특정 비디오를 몇 번 다운로드했는지 확인하는 것입니다. 이게 내 최선의 방법인가요? 아니면 더 좋은 방법이 있습니까?

감사합니다.

답변

0

이렇게 할 수는 있지만 끝까지 코딩하면 효과가 있습니다.

1가 제공되는 것을 방지하기 위해 자세한 S3 로그 통계를 가능하게하고 코드를 작성하는 로그 파일을 구문 분석하고 한계에 도달했을 때 파일에 의해 결정하고, 다음 파일에 권한을 취소하는 것입니다 방법 더 이상.

여기에 자세한 S3 로깅을 사용하도록 설정하는 방법에 대한 정보입니다 :

http://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html

이 비교적 간단하지만 아마도 조금 우아는 당신 때문에 로그의 고유 지연 한도 이상가는 위험을 감수 할 로그를 처리하는 데 지연이 생기므로 제한 시간에 도달하면 20 분에서 1 시간 이상이 걸릴 수도 있지만 응용 프로그램이이를 실현하기에 충분한 정보를 가지기 전에는 시간이 걸릴 수 있습니다. IMO 당신의 iOS 앱과 S3 사이에 EC2 인스턴스 (또는 인스턴스)를 둘 것입니다 좀 더 우아한 방법 2

- iOS 앱이 인스턴스를 EC2에 요청을, 그것은 (실시간 통계를 조회 그것은 dynamodb 또는 rds에 축적되었을 가능성이 있습니다) 그리고 적절한 비디오에 s3 url을 반환하거나 앱에 over-limit 오류를 반환합니다. 이 방법을 사용하면 ec2 인스턴스가 교통 경찰로 작동하고 특정 파일에 대한 활성화/비활성화 액세스가 실시간으로 수행 될 수 있으므로 s3 권한을 취소 할 필요가 없습니다. 실시간보고/알림을 쉽게 추가 할 수 있습니다 이 방법을 사용하면 파일이나 파일이 유용 할 경우 바이러스가 발생하는 시점을 알려줍니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 방법 2는 유감스럽게도 동영상 URL이 공개가되어 앱이 아닌 어디서나 액세스 할 수 있으므로 유스 케이스에서는 작동하지 않습니다. 따라서 우리는 비디오가 시청 될 때마다 끝점에 알릴 수 없었습니다. 방법 1은 내가 염두에 두었던 것이지만, 이상으로부터 멀리 떨어진다는 것에 동의한다. – Dimitar08

+0

** 업데이트 ** : AWS는 (실제로는 .. 지금은) 향상된 통계 기능인 'CloudWatch'를 보유하고 있습니다. 이 게시물을 다루는 아주 간단한 사용법 : http://docs.aws.amazon.com/AmazonS3/latest/user-guide/configure-metrics.html – ymz