2017-02-08 4 views
3

Derzeit funktioniert mein Bild-Upload-System in Laravel 5.3 wie folgt.AWS S3: Bildgröße ändern mit Lambda in Laravel 5.3

1.User lädt das Bild hoch.

2.Resize das Bild mit Imagick-Bibliothek.

3. Speichern Sie das Original und das zugeschnittene Bild in AWS S3.

Das funktioniert gut jetzt möchte ich den zweiten Schritt (Bildgröße ändern) mit AWS Lambda verschieben, aber ich kann nichts über AWS Lambda Integration mit PHP finden, aber Node-JS und Java-Integrationsleitfäden sind in der offiziellen Dokumentation verfügbar.

So gibt es andere Dienste (außer aws Lambda) verfügbar, um meine Funktionalität zu erreichen?

Antwort

3

Sie können PHP oder eine andere Sprache für AWS Lambda verwenden, aber Sie müssen es innerhalb eines NodeJS-Wrappers einkapseln.

Zum Glück AWS bietet eine offiziellen, sehr einfache Anleitung, wie dies zu tun: https://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-running-php-ruby-and-go/

Außerdem, wenn Sie etwas Zeit sparen wollen (durch nicht manuell eine PHP-Distribution Aufbau wie in dem oben erwähnten Artikel beschrieben), Sie können den folgenden Docker-Container verwenden: https://github.com/dannylinden/aws-lambda-php

+1

danke für deine antwort lass mich es versuchen – Jabaa

-1

Momentan unterstützen AWS Lambda-Funktionen PHP nicht. Da Sie ein PHP-Entwickler sind, können Sie problemlos nodeJS-Skript für die Funktion zum Ändern der Bildgröße schreiben. Max es wird 12 bis 15 Zeilen kommen. Viele Beispiele sind auch für die gleiche Funktionalität verfügbar. S3 zu Auto-Trigger-Konfiguration können Sie tun, um Lambda-Funktionen. Deine Arbeit wird also sehr minimal sein.

Aber noch, wenn Sie nach einer alternativen Lösung suchen, müssen Sie ec2-Instanz verwenden, dort müssen Sie eine REST-API verfügbar machen. Diese API sollte in der Lage sein, das Bild zu empfangen und die Größe neu zu bestimmen. Schließlich speichert es die ursprünglichen und vergrößerten Bilder in zwei verschiedenen AWS S3-Buckets (aber nicht empfohlen).

Wenn Sie direkt in s3 Bucket aus der Anwendung (php) selbst speichern möchten, dann schreiben Sie den Code für die Größenänderung und speichern Sie in separaten Eimer aus Ihrer Anwendung.

+0

Das ist falsch, Sie können PHP auf AWS Lambda verwenden. –

+0

@ NinoŠkopac bitte erklären Sie Ihre Antwort – Jabaa

+1

@kamal Gadepalli Ich habe nicht die Bedeutung dieser 'Wie Sie ein PHP-Entwickler sind, können Sie einfach schreiben NodeJS-Skript für Image-Size-Funktionalität ' – Jabaa