簡體   English   中英

嘗試將AWS S3數據庫備份到heroku postgres時出現403錯誤

[英]403 error when trying to backup AWS S3 database to heroku postgres

我正在嘗試在Heroku上部署我的Django應用程序。 我已經創建了一個Heroku Postgres數據庫,我想從AWS S3將現有的PostgreSQL數據庫導入其中。 我按照Heroku文檔中教程來寫信。 我創建了一個Heroku Postgres數據庫並將其提升為主數據庫。 我按照Heroku的AWS S3教程設置了所有配置變量,以便heroku可以訪問我的S3存儲桶。 但是,當我運行heroku pg:backups restore 'https://s3.amazonaws.com/<bucket name>/<database name>' DATABASE_URL ,收到錯誤消息“發生錯誤,備份未完成。 “

以下是heroku pg:backups info的完整輸出heroku pg:backups info

=== Backup info: r012
Database:    BACKUP
Started:     2015-07-13 13:43:30 +0000
Finished:    2015-07-13 13:43:30 +0000
Status:      Failed
Type:        Manual
Backup Size: 0.00B
=== Backup Logs
2015-07-13 13:43:30 +0000: 2015/07/13 13:43:30 aborting: could not write to output stream: Expected HTTP Status 200, received: "403 Forbidden"
2015-07-13 13:43:30 +0000: pg_restore: [custom archiver] could not read from input file: end of file
2015-07-13 13:43:30 +0000: waiting for restore to complete
2015-07-13 13:43:30 +0000: restore done
2015-07-13 13:43:30 +0000: waiting for download to complete
2015-07-13 13:43:30 +0000: download done

當然,由於這是403錯誤,我認為我的身份驗證有問題。 我運行了heroku config並對所有配置變量進行了三重檢查。 AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY和DATABASE_URL環境變量都是正確的,並且與我在AWS和Heroku Postgres GUI中看到的相匹配。

為什么我看到此錯誤消息?

好吧,我覺得愚蠢,但問題的原因是我忘記在我的AWS網址中添加“.dump”到文件名的末尾。

同樣的錯誤從AWS拉入Heroku

如果未在AWS存儲桶內的轉儲文件上正確設置權限,Heroku有時會拒絕導入備份/轉儲文件。 (如果Heroku無法訪問該文件,則無法上傳。)

您可以在“操作”>“屬性”按鈕下找到權限設置,也可以單擊文件,然后單擊右側的“屬性”按鈕。

一個簡單的解決方法是暫時使轉儲文件公開,執行heroku還原,然后鎖定或刪除轉儲文件。

對於Windows用戶;
heroku pg:backups:restore "https://s3.amazonaws.com/me/items/3H0q/mydb.dump" DATABASE_URL

根據官方文檔,如果您使用的是Windows,請務必在遠程URL周圍使用雙引號。 看官方文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM