Digital Ocean Spaces (S3) "incapaz de firmar la solicitud sin credenciales establecidas"

Esto es lo que finalmente funcionó:

Estos ajustes tenían que estar en la configuración de app.yml para que finalmente ejecutara las tareas rake correctamente. Cuando estaban solo en el área /admin/site_settings/, no ejecutaba las tareas rake correctamente. Estaba recibiendo un error:

ERROR: Ensure S3 is configured in config/discourse.conf or environment vars

Los ajustes son de aquí… Configure an S3 compatible object storage provider for uploads

Específicamente, usé los ajustes de Spaces no personalizados con dos espacios antes de cada línea. …

DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_CDN_URL: https://nyc3.cdn.digitaloceanspaces.com
DISCOURSE_S3_BUCKET: my-files
DISCOURSE_S3_BACKUP_BUCKET: my-files/my-backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false

NOTA: DISCOURSE_S3_REGION debe decir literalmente “whatever” y no algo que pueda interpretarse como una región S3 real (es decir, us-west-1).

También estos ajustes, en la sección hooks del área ## Plugins go here

after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets

Aquí es donde tuve un problema la última vez. Una vez que eso estuvo configurado y reconstruí, estaba viendo esta pantalla de carga cuando intentaba abrir nuestro foro en un navegador.

Esto se debe solo a que está buscando activos que aún no se han actualizado. Aquí es donde es hora de ejecutar las tareas rake, desde dentro de la aplicación…

./launcher enter app

rake s3:upload_assets

Una vez que eso se ejecutó, el número de elementos aumentó y apareció una carpeta “assets” en nuestro bucket…

Luego, el foro comenzó a cargarse correctamente. Estos son los únicos ajustes relacionados con S3 que veo en mi área /admin/site_settings…

Ejecuté esto para subir todos los archivos y actualizó las URL desde la ruta antigua a la nueva (sin CDN).

rake uploads:migrate_to_s3 --trace

El número de elementos se triplicó con creces después de que eso terminó.

Lo único que noté fue que las rutas de las imágenes de publicaciones antiguas usaban la URL del PUNTO FINAL (ENDPOINT) de S3 frente a las imágenes publicadas recientemente que usaban la URL de CDN de S3.

https:/my-storage.sfo3.digitaloceanspaces.com/
vs
https:/my-storage.sfo3.cdn.digitaloceanspaces.com/

Realmente no me importó porque al menos todo estaba usando S3.

Pero intenté ejecutar…

rake posts:rebake

image

Lo arruinó porque se quedó sin memoria. Intenté ejecutar esto en su lugar…

rake posts:rebake_uncooked_posts

Se quedó sin memoria varias veces y se reinició, luego se quedó sin memoria de nuevo. Lo ejecuté de nuevo. Finalmente terminó de procesar todos.

Una vez que se ejecutó hasta el 100%, todos los enlaces finalmente estaban usando la ruta URL de CDN de S3, publicaciones antiguas y nuevas.

Muy contento de que todo funcione con S3 ahora, incluidas las copias de seguridad. Hablando de eso, ¡probablemente sea un buen momento para ejecutar una!

Espero que esto ayude a alguien.

¡Buena suerte!

1 me gusta