Certifique-se de que suas credenciais em sua máquina estejam armazenadas em
~/.aws/
o valor padrão é definido para as credenciais que você criou para suas configurações do heroku. Em seguida, verifique também se o URL assinado foi criado com essas credenciais e configurações. Eu tive que definir minhas credenciais padrão para as credenciais que coloquei nas minhas configurações do heroku. Então eu também tive que definir minha região padrão em ~/.aws/config
para corresponder à localização do bucket. Deve funcionar depois disso. Aqui estão algumas instruções se você estiver no mac ou linux.
Desculpe pessoal do Windows. Eu diria que é algo semelhante.
- Crie um novo ID de acesso e chave no IAM na AWS
- Defina as configurações do heroku para usar essas credenciais
heroku config:set AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy
- Opcional (talvez seja necessário definir o nome do bucket na configuração do heroku também)
- Em sua máquina, defina suas credenciais que você acabou de criar para o padrão em
~/.aws/credentials
- Em sua máquina, defina sua região padrão que corresponde ao seu bucket em
~/.aws/config
- Criar URL assinado
aws s3 presign s3://your-bucket-address/your-object
- Execute restore
heroku pg:backups:restore '<SIGNED URL>' DATABASE_URL