heroku常用命令示例(三)与AWS S3互动

1. 配置heroku接入AWS S3服务的凭证

heroku官网上的命令示例总是跟实践差着一步,截图为证: 在这里插入图片描述
径直无脑照做您会收到报错:

C:\Users\Benjamin Chen>heroku config:set AWS_ACCESS_KEY_ID=mykeyidxxx AWS_SECRET_ACCESS_KEY=mykeyyyy
 »   Error: Missing required flag:
 »     -a, --app APP  app to run command against
 »   See more help with --help

正确的做法是加入app名作为参数,在正确的位置…(heroku官方就不能写个具体点的示例么!):

C:\Users\Benjamin Chen>heroku config:set -a chem2reg AWS_ACCESS_KEY_ID=mykeyidxxx AWS_SECRET_ACCESS_KEY=mykeyyyy
Setting AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and restarting ⬢ chem2reg... done, v5
AWS_ACCESS_KEY_ID:     mykeyidxxx
AWS_SECRET_ACCESS_KEY: mykeyyyy

加入了-a chem2reg,chem2reg是我放在heroku上的app名字。

2. 从AWS S3导入postgres备份数据到heroku上的postgres数据库

为啥不直接从本地导入数据呢?为啥还要到AWS上折腾?
没得选,heroku制定的规则!
heroku官网上的指导
官网的指导一如既往的是完全不够的!
在这里插入图片描述
十八摸之后,你应该这么干:
首先要进入到AWS控制台,创建IAM用户第一步:
在这里插入图片描述
IAM用户创建第二步,搜索s3,然后选择策略,因为不是很懂所以我选了fullaccess权限,看你还有什么妖蛾子哼!
在这里插入图片描述
后面几步没什么好说的,一路直行。
创建IAM用户的目的是拿到访问密匙ID:example_mykeyid/私有访问密匙:example_mykey
在这里插入图片描述

拿到密匙的目的是~~构建signed url
构建signed url的目的是为了使用下面这条命令来导入postgreSQL数据:

heroku pg:backups:restore '<SIGNED URL>' DATABASE_URL

构建signed url的过程可参考《使用Python AWS SDK boto3生成签名链接(signed url)
生成的链接如下(每次都会有所不同,链接有效时间为一小时):

https://mypsdata.s3.amazonaws.com/cisdatabase_dump?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXX4JXBAKZCGFZTDK%2F20210731%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20210731T113531Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=001763859fbddaef7099bb932e49639630f8018faa304f023cb05e7ace1f6a14

其中,mypsdata是存储桶的名字,cisdatabase_dump是我放在桶里的pg数据库备份文件名
万事具备!控制台上输入命令:

heroku pg:backups:restore -a chem2reg "https://mypsdata.s3.amazonaws.com/cisdatabase_dump?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXX4JXBAKZCGFZTDK%2F20210731%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20210731T113531Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=001763859fbddaef7099bb932e49639630f8018faa304f023cb05e7ace1f6a14" postgresql-polished-14609

数据库备份导入heroku成功!
在这里插入图片描述
注意!在windows操作系统中使用该命令时,signed url一定要用双引号括起来

【发表真的是为了记忆】
【要不然是真的记不住】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值