La carga de archivos locales a DigitalOcean Spaces (S3) con rake uploads:migrate_to_s3 inicia y migra algunos archivos, pero luego falla repentinamente en uno de ellos con el error Aws::S3::Errors::SignatureDoesNotMatch.
Cuando este archivo se sube manualmente utilizando el script mencionado en Extend S3 configuration for other S3 API compatible services - #4 by rishabh y el script se vuelve a ejecutar, se suben más archivos, pero vuelve a fallar en otro archivo diferente.
¿Podría alguien del equipo echar un vistazo a esto? Tengo casi 50 GB de archivos que necesito mover del almacenamiento local a S3 en un futuro cercano (la configuración y la carga de nuevos archivos funcionan sin problemas).
Estaría agradecido incluso si solo es una solución temporal por ahora: he revisado el código to_s3_migration.rb y puedo identificar los archivos problemáticos, pero cuando los subo a S3 usando Aws::S3::Resource desde el script mencionado anteriormente, los metadatos del archivo faltan y el nombre original del archivo se pierde al descargarlo.
La búsqueda en la web arroja muchos problemas relacionados con SignatureDoesNotMatch: uno de ellos menciona que la versión del algoritmo de firma que utiliza la gem podría ser incorrecta, pero esto está más allá de mis habilidades actuales para verificarlo.
Esta es la configuración para rake:
DISCOURSE_S3_ACCESS_KEY_ID="id" \
DISCOURSE_S3_SECRET_ACCESS_KEY="secret" \
DISCOURSE_S3_REGION="sfo2" \
DISCOURSE_S3_BUCKET="mybucket/uploads" \
DISCOURSE_S3_ENDPOINT="https://sfo2.digitaloceanspaces.com" \
DISCOURSE_S3_CDN_URL="https://mybucket.sfo2.cdn.digitaloceanspaces.com" \
rake uploads:migrate_to_s3 --trace