Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!