Carico alcune immagini su un'app Rails tramite Paperclip gem che voglio che solo gli amministratori del backend possano visualizzare. Di conseguenza, li ho impostati come privati.Visualizzazione di immagini private caricate su AWS S3 - Creazione di firme dalla chiave di accesso segreta
Quindi ho cercato una soluzione su come solo gli admin con link specifici possono visualizzare i file. Questo è ciò che ho found.
Ho continuato a provare questo, ma sto facendo fatica a creare la firma necessaria. La formula è data sul link qui sopra ed è:
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;
non avevo idea di quale libreria/modulo/gemma ho bisogno di ottenere questo al lavoro su Ruby on Rails. Cercando in giro ho trovato il aws-s3 gem. Ho letto il loro wiki e ho visto questo "Accesso agli oggetti privati da un browser".
Così li ho installati gem, ho aperto la console e ho provato a testarli. Sono stato in grado di stabilire una connessione con AWS S3 ma poi non posso fare nulla perché ho errori come "costante non inizializzata" e "NameError".
Qualsiasi consiglio/guida nella giusta direzione è apprezzato.
Ultima nota, quello che cerco di fare è generare collegamenti che gli amministratori saranno in grado di utilizzare per visualizzare le immagini sul proprio browser e non scaricarle. Da quello che ho letto questo è quello che fa. Ma è sicuro o semplicemente li scarica sul computer dell'amministratore?
Questa è la soluzione più semplice. Tutto ciò di cui hai bisogno è la gemma e la graffetta "aws-sdk". Imposta le tue opzioni di paperclip per usare s3 e imposta s3_permissions su private "has_attached_file: document, : s3_permissions =>: private, : storage => 's3'" – zarazan