OK, c'est difficile pour moi de publier parce que je me sens tellement stupide, mais la solution directe à mon problème était que je n'ai pas rendu mon lien public sur Amazon S3. C'est pourquoi j'obtenais une erreur 403.
La confusion potentielle est que vous pouvez utiliser le lien non public, qui est une longue chaîne de caractères codés. Mais il utilise une URL en cache. Étant donné que le cache est temporaire, le cache a été supprimé avant que mon processus de restauration ne puisse se terminer.
La réponse est donc de rendre public le lien Amazon S3, puis d'utiliser le lien public, par exemple :https://s3-us-west-2.amazonaws.com/your_bucket_name/your_file_name.dump
.
Ensuite :heroku pg:backups restore 'https://s3-us-west-2.amazonaws.com/your_bucket_name/your_file_name.dump' HEROKU_DATABASE_URL
.
Cela dit, parallèlement à ce problème, je pense qu'il existe toujours un problème de "blocage" lié à AccessExclusiveLock
que je devais résoudre séparément, cela faisait que pg_restore prenait suffisamment de temps pour que le cache expire, mais c'est un problème distinct.