2017-07-25 30 views
7

Tôi đang trong quá trình xây dựng một ứng dụng dựa trên web (Django, Góc trên AWS). Các ứng dụng sẽ được phương tiện truyền thông nặng như trong người dùng sẽ được tải lên rất nhiều hình ảnh, video và ghi âm.Tối ưu hóa phương tiện - Ứng dụng web AWS

Hiện tại, chúng tôi đang lưu trữ chúng trong S3. Bất kỳ suy nghĩ nào về cách tiếp cận tốt nhất để 1. Giảm thiểu dung lượng 2. Giảm chuyển dữ liệu 3. Không ảnh hưởng mạnh đến chất lượng hình ảnh/video.

Xin cảm ơn trước.

Trả lời

8

Tùy thuộc vào tần suất sử dụng phương tiện, bạn có thể sử dụng S3 life cycles để chuyển tệp thành bộ nhớ giá thấp. Ví dụ, ban đầu bạn có thể sử dụng tiêu chuẩn S3 để phục vụ các tệp và sau đó chuyển chúng vào lớp lưu trữ S3 IA, sau đó chuyển sang Glacier (Các tệp sẽ không được sử dụng thường xuyên). Và nếu bạn đang sử dụng nội dung có thể tái sản xuất, hãy cân nhắc sử dụng S3 RRS.

enter image description here

hình ảnh từ quản lý giao diện điều khiển Cũ S3.

Sử dụng AWS CloudFront để lưu vào bộ nhớ cache ở các vị trí cạnh.

Và để cải thiện video tải lên từ các vị trí khác nhau, hãy cân nhắc sử dụng S3 Transfer Acceleration.

Bạn cũng có thể theo dõi AWS reference architectures để tận dụng tốt nhất các dịch vụ AWS.

AWS Media server RA

kiến ​​trúc tham khảo for media and content serving from AWS.

Khi nói đến video, bạn có thể sử dụng AWS Elastic Transcoder để mã hóa video thành các định dạng khác nhau sẽ là chất lượng tốt nhất cho các thiết bị khác nhau.

+0

Điều này thật tuyệt. Điều gì sẽ là cách tốt nhất để giảm chất lượng hình ảnh/video. Điều này sẽ chiếm hầu hết không gian nếu mọi người đang tải lên hình ảnh và video chất lượng cao. – user3381710

+0

Đối với hình ảnh, bạn có thể sử dụng lambda để giảm chất lượng hình ảnh. Bạn có thể đặt trình kích hoạt sự kiện S3 để khởi động lambda bất cứ khi nào người dùng tải lên một hình ảnh. Đối với video, tôi khuyên bạn nên sử dụng Bộ chuyển mã đàn hồi vì bạn có thể chuyển mã sang nhiều định dạng khác nhau với các giá trị đặt trước chất lượng khác nhau. –