~/.aws/
に保存されているマシンのクレデンシャルを確認してください デフォルト値は、heroku構成用に作成した資格情報に設定されています。次に、署名されたURLがそれらの資格情報と構成で作成されていることも確認します。デフォルトのクレデンシャルを、heroku構成に設定したクレデンシャルに設定する必要がありました。次に、デフォルトのリージョンを~/.aws/config
に設定する必要もありました。 バケットの場所と一致します。その後は機能するはずです。
MacまたはLinuxを使用している場合の手順は次のとおりです。
Windowsの方はごめんなさい。似たようなものだと思います。
- AWSのIAMで新しいアクセスIDとキーを作成する
- これらのクレデンシャルを使用するようにherokuconfigsを設定します
heroku config:set AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy
- オプション(heroku構成でもバケット名を設定する必要がある場合があります)
- マシンで、作成したクレデンシャルを
~/.aws/credentials
のデフォルトに設定します - マシンで、バケットに対応するデフォルトのリージョンを
~/.aws/config
に設定します - 署名付きURLを作成する
aws s3 presign s3://your-bucket-address/your-object
- restore
heroku pg:backups:restore '<SIGNED URL>' DATABASE_URL
を実行します