2011-11-04 21 views
9

OK, do đó, một bản tóm tắt nhanh chóng thiết lập của tôi và những gì tôi muốn đạt được:Cách thanh lịch để tạo hình thu nhỏ của hình ảnh được lưu trữ trên s3 với ec2 và giao tiếp với đường ray khi kết thúc?

  1. Tôi có một đường ray 2.3.5 máy chủ chạy trang web của tôi. Tôi có một ứng dụng flash trên trang web của mình nơi người dùng có thể tải hình ảnh trực tiếp lên s3.

  2. Khi tải lên hoàn tất, đường ray được thông báo.

  3. Tại thời điểm tải hình ảnh lên s3 và đường ray được thông báo, tôi muốn đường ray gửi một số bài đăng đến địa điểm nào đó trên ec2 để tạo hai hình thu nhỏ (110x110 và 600x600).

  4. Khi hình thu nhỏ được tạo và chuyển sang s3, tôi muốn bất kỳ quá trình nào trên ec2 gửi bài đăng trở lại đường ray để thông báo rằng quá trình tạo hình thu nhỏ kết thúc và nằm trên s3.

Cách tốt nhất để thực hiện việc này là gì? Tôi đã xem xét các công cụ như knife rất ngắn gọn nhưng tôi không quen thuộc với việc sử dụng các dịch vụ ec2 hoặc tương tự.

Cảm ơn

Trả lời

6

Quá trình mà tôi sẽ sử dụng như sau:

  1. Khi hình ảnh được tải lên S3, đường ray được thông báo và nó cho biết thêm một thông điệp tới một SQS Queue Amazon (xem http://aws.amazon.com/sqs/)

  2. Quá trình nền chạy trên EC2 kiểm tra hàng đợi và xử lý bất kỳ thư nào, tạo hình thu nhỏ

  3. Khi một hình ảnh thu nhỏ được tạo ra, một thông báo được gửi bằng Amazon SNS (xem http://aws.amazon.com/sns/) và đường ray của bạn respons ứng dụng thông báo này

+0

Cảm ơn bạn đã trả lời. Tôi đang xem đá quý ruby ​​ec2 này (https://github.com/rightscale/right_aws) để gửi các yêu cầu hàng đợi với SQS. Những gì tôi không chắc chắn là những gì tôi sẽ làm ở phía bên ec2. Tôi có nên có một máy chủ rails với right_aws để kiểm tra hàng đợi và sau đó một cái gì đó như kẹp giấy để xử lý hình ảnh cho hình thu nhỏ? – Zyren

+0

Có một đường ray với right_aws và kẹp giấy trên EC2 là một lựa chọn nhưng nó không thực sự quan trọng những gì bạn đang chạy trên EC2 miễn là nó có thể thăm dò hàng đợi SQS và xử lý hình ảnh. – dcro

+1

Bạn cũng có thể xem xét sử dụng nhà cung cấp SAAS để xử lý việc tạo hình thu nhỏ. Một tùy chọn mà tôi bây giờ là http://transloadit.com/ nhưng tôi đã không sử dụng chúng vì vậy tôi không thể cung cấp bất kỳ phản hồi nào về dịch vụ của họ. – dcro

18

cho những người như tôi, những người nhìn này lên, AWS hiện nay cung cấp Lambda

AWS Lambda là một dịch vụ tính toán giúp bạn dễ dàng xây dựng các ứng dụng phản hồi nhanh chóng thông tin mới. AWS Lambda chạy mã của bạn để phản hồi các sự kiện như tải lên hình ảnh, trong ứng dụng hoạt động, số lần nhấp vào trang web hoặc kết quả đầu ra từ các thiết bị được kết nối. Bạn có thể sử dụng AWS Lambda để mở rộng các dịch vụ AWS khác bằng logic tùy chỉnh hoặc tạo back-end của riêng bạn hoạt động ở quy mô AWS, hiệu suất và bảo mật . Với AWS Lambda, bạn có thể dễ dàng tạo các ứng dụng riêng biệt, theo hướng sự kiện chỉ thực hiện khi cần và tự động chia tỷ lệ từ một vài yêu cầu mỗi ngày đến hàng nghìn mỗi giây.

Dưới đây là hướng dẫn tuyệt vời trả lời câu hỏi này một cách hoàn hảo, Handling Amazon S3 Events. Ý tưởng là có một gói node.js - Labmda- được thông báo về các sự kiện S3 Bucket (đối tượng được tạo trong trường hợp của chúng ta), lấy đối tượng đã tải lên, thay đổi kích thước rồi cuối cùng lưu nó vào một số nhóm khác cho hình thu nhỏ. Vì bạn sẽ có một ứng dụng node.js, về cơ bản bạn có thể thực hiện bất kỳ loại yêu cầu nào cho bất kỳ dịch vụ nào bạn muốn sau khi hình thu nhỏ được lưu lại.

+0

Đây là giải pháp phù hợp/rẻ nhất https://www.quora.com/What-is-the-best-practice-for-creating-a-thumbnail-on-S3-Bucket/answer/Akbar-Khan-1 tại đây Tôi đã bao gồm làm thế nào để làm điều đó –

Các vấn đề liên quan