Ich lade einige Bilder auf eine Rails App durch Paperclip Gem, die ich nur die Admins auf dem Backend in der Lage sein soll zu sehen. Infolgedessen habe ich sie als privat gesetzt.Anzeigen privater Bilder, die auf AWS S3 hochgeladen wurden - Erstellen einer Signatur aus Secret Access Key
Dann suchte ich nach einer Lösung auf, wie nur Admins mit bestimmten Links die Dateien anzeigen können. Das ist was ich found.
Ich fuhr fort, dies zu versuchen, aber ich kämpfe um die erforderliche Signatur zu erstellen. Die Formel ist auf dem obigen Link gegeben und ist:
Signature = URL-Encode(Base64(HMAC-SHA1(YourSecretAccessKeyID, UTF-8-Encoding-Of(StringToSign))));
StringToSign = HTTP-VERB + "\n" +
Content-MD5 + "\n" +
Content-Type + "\n" +
Expires + "\n" +
CanonicalizedAmzHeaders +
CanonicalizedResource;
Ich hatte keine Ahnung, die Bibliothek/Modul/gem ich brauche, um diese auf Rails Ruby zu arbeiten. Durch die Suche fand ich über die aws-s3 gem. Ich lese ihre wiki und sah dies "Zugriff auf private Objekte von einem Browser".
Also habe ich sie gem installiert, ging weiter und öffne meine Rails-Konsole und versuchte sie zu testen. Ich konnte eine Verbindung mit AWS S3 herstellen, aber dann kann ich nichts machen, da ich Fehler wie "nicht initialisierte Konstante" und "NameError" erhalte.
Jede Spitze/Führung in die richtige Richtung wird geschätzt.
Letzten Hinweis, was ich versuche zu tun ist Links zu generieren, die die Admins in der Lage sein werden, die Bilder in ihrem Browser zu sehen und nicht herunterladen. Von dem was ich lese ist das was es macht. Aber ist es sicher oder lädt sie einfach auf den Computer des Administrators?
Dies ist die einfachste Lösung. Alles, was Sie brauchen, ist das 'Aws-SDK' Juwel und Büroklammer. Legen Sie Ihre Büroklammeroptionen fest, um s3 zu verwenden, und legen Sie die s3_permissions auf privat fest, z. B. "has_attached_file: document, : s3_permissions =>: private, : speicher => 's3'" – zarazan