![](/img/trans.png)
[英]AWS S3 bucket returns 403 error when referencing a static folder path in Django project
[英]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.