Caricare file locali su DigitalOcean Spaces (S3) con rake uploads:migrate_to_s3 avvia il processo e migra alcuni file, per poi interrompersi improvvisamente su un singolo file con l’errore Aws::S3::Errors::SignatureDoesNotMatch.
Quando questo file viene caricato manualmente utilizzando lo script menzionato in Extend S3 configuration for other S3 API compatible services - #4 by rishabh e lo script viene rieseguito, vengono caricati altri file, ma si verifica nuovamente un fallimento su un altro file.
Qualcuno del team potrebbe per favore dare un’occhiata? Ho quasi 50 GB di file che devo spostare dall’archiviazione locale a S3 nel prossimo futuro (la configurazione e il caricamento per i nuovi file funzionano senza problemi).
Sarei grato anche solo per una soluzione temporanea: ho esaminato il codice to_s3_migration.rb e riesco a identificare i file problematici, ma quando li carico su S3 utilizzando Aws::S3::Resource dallo script menzionato sopra, i metadati del file vengono persi e il nome originale del file non viene mantenuto al momento del download.
Una ricerca sul web restituisce numerosi problemi relativi a SignatureDoesNotMatch: uno di essi menziona che la versione dell’algoritmo di firma utilizzata dal gem potrebbe essere errata, ma questo supera le mie attuali competenze di verifica.
Questa è la configurazione per 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