Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

212
Vistas
Almacenamiento de activos estáticos de Phoenix en Amazon S3

Necesito proporcionar algo de contexto antes de hacer la pregunta:

CONTEXTO

Tengo una aplicación de Phoenix que se está implementando en Heroku . De manera predeterminada, Brunch se utiliza para compilar activos estáticos como .js , .css e imágenes.

  • Esos activos se almacenan en ./assets (a partir de Phoenix 1.3 ).
  • Esos activos se compilan en ./priv/static/ .

El proceso de compilación genera un cache_manifest.json , después de que los activos se digieran utilizando la huella digital MD5 .

Tal vez sea importante notar que estoy usando la versión gratuita de CloudFlare como CDN.

No me preocupan los activos subidos por el usuario , estoy hablando de los activos de la aplicación

Parte relevante de las aplicaciones config/prod.exs

 config :bespoke_work, BespokeWork.Web.Endpoint, on_init: {BespokeWork.Web.Endpoint, :load_from_system_env, []}, http: [port: {:system, "PORT"}], url: [scheme: "https", host: System.get_env("HEROKU_HOST"), port: System.get_env("HEROKU_PORT")], static_url: [scheme: "https", host: System.get_env("STATIC_ASSETS"), port: 443], force_ssl: [rewrite_on: [:x_forwarded_proto]], cache_static_manifest: "priv/static/cache_manifest.json", secret_key_base: System.get_env("SECRET_KEY_BASE")```

PREGUNTA

  1. ¿Cómo puedo evitar que Heroku cree los activos y, en su lugar, durante la implementación, cargue automáticamente los activos digeridos en un depósito de Amazon S3 ?

  2. ¿Eso hará que la babosa de Heroku sea más pequeña?


SOLUCIÓN POSIBLE

  1. Reduciendo el tamaño de la babosa de Heroku :

    • En la redirección de Procfile mix phx.digest para generar elementos digeridos en /dev/null .

    o

    • Redefinir mix deps.compile para Prod , sin generar los activos.


  1. Generar los activos localmente.

  1. Cárguelos manualmente o use un Shell Script para cargarlos en S3 . (En mi caso, probablemente usando la implementación Amazing Amazon S3 de Codeship )

  1. Utilice static_url para generar rutas que "apunten" al depósito de S3 .

• ¿Hay alguna forma más sencilla de lograr esto? •

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto no es realmente una buena idea... incluso podría considerarse un anti-patrón.

Pero, si por alguna razón, eso es absolutamente necesario, esta es una forma de hacerlo:

Reduciendo el tamaño de la babosa en Heroku:

  • Heroku permite el uso de un archivo .slugignore para casos de uso básicos (como .pdf o .psd )

    y/o

  • El paquete de compilación del limpiador de slug limpia los activos estáticos no necesarios después de que se hayan procesado.


Automatización de cargas de Amazon S3

• Esto debe hacerse a través de un script de shell.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda