[RAILS] Préparez une URL pour afficher vous-même l'image téléchargée par Active Storage

Ce que je voulais faire

Je voulais enregistrer le HTML, y compris l'URL de l'image, tel qu'il est dans la base de données et l'afficher brut avec un éditeur tel que WYSIWY.

problème

Si vous enregistrez directement service_url, le jeton d'accès expirera et vous obtiendrez l'erreur suivante:

https://storage.googleapis.com/xxx/6qk30zadasnfkansfalksj34gq?GoogleAccessId=...

<Error>
  <Code>ExpiredToken</Code>
  <Message>The provided token has expired.</Message>
  <Details>Request signature expired at: 2020-09-30T19:07:20+00:00</Details>
</Error>

スクリーンショット 2020-10-05 2.29.58.png

Préparer une URL pour la génération

Créez un modèle pour les actifs afin de préparer une URL pour générer et afficher un service_url avec un jeton d'accès.

asset.rb


class Asset < ApplicationRecord
  has_one_attached :image
end

Changé pour envoyer des données d'image avec le spectacle du contrôleur.

assets_controller.rb


class AssetsController < ActionController::Base
  # GET /assets:id
  def show
    asset = Asset.find(params[:id])
    send_data asset.image.download, filename: asset.image.filename.to_s, content_type: asset.image.content_type
  end
end

En enregistrant l'URL suivante dans la base de données, il était possible d'afficher l'image via le serveur d'application sans expiration.

...
<img src="http://localhost:3000/assets/2" alt="Image">
...

Recommended Posts

Préparez une URL pour afficher vous-même l'image téléchargée par Active Storage
Lorsque vous passez la souris sur Matplotlib, l'image correspondante s'affiche.
Téléchargez l'image téléchargée par requêtes directement vers S3
Enregistrer le graphique dessiné par pyqtgraph dans une image
Python Open CV a essayé d'afficher l'image sous forme de texte.
[python] Remplacez le nom du fichier image par un numéro de série
Convertissez les données d'image (png) à portée de main en une image .pbm
Point selon l'image
L'image est Namekuji
Recherche par image de la pellicule en utilisant Pythonista3
Affichez l'image de la caméra connectée à l'ordinateur personnel sur l'interface graphique.
Visualisez en ajoutant "une morsure" au "diagramme barbe boîte" (boxen / essaim / violon)
Essayez de modifier une nouvelle image à l'aide du modèle StyleGAN2 entraîné
[Go] Créez une commande CLI pour changer l'extension de l'image
Raspberry Pi --1 --Première fois (Connectez un capteur de température pour afficher la température)
J'ai essayé de couper une image fixe de la vidéo
J'ai fait une commande pour afficher un calendrier coloré dans le terminal
Préparez un environnement d'analyse haute vitesse en accédant à mysql depuis l'environnement d'analyse de données
Si vous voulez être guéri par l'image de Mia Nanasawa, appuyez sur l'API Twitter ♪