我在Heroku上有一个应用程序,我想将我在Heroku上的生产数据库备份到单独的云服务提供商站点上的备份文件存储库中。要做到这一点,我需要从heroku获得公共URL作为备份,我只是不知道如何调用api来获得它。下面是一些简单的sudo代码,说明我希望如何获得这个结果,但显然语法是从我的头脑中/其他人的例子中冒出来的,所以它不起作用。
要求“heroku-api” heroku = Heroku::API.new(:api_key => API_KEY) >(如果备份文件太大,则将数据库拆分为多个备份文件,因此我需要循环遍历每个生成的公共URL) heroku.get_addons('my-heroku-app').pgbackup.url.each do |public_file| current_url = public_file.url.link (这里是我使用该链接将文件复制到另一台服务器的地方) 结束
Heroku提供了关于如何从命令行(而不是api )执行此操作的文档。下面是他们网站上的一个片段,介绍如何从命令行执行此操作。
> Downloading a backup
>
> You can create a publicly accessible backup URL with the pgbackups:url
> command. This is useful when migrating data between applications,
> upgrading starter tier plans, and exporting your data.
>
> $ heroku pgbackups:url
> "http://s3.amazonaws.com/hkpgbackups/app1234567@heroku.com/b004.dump?AWSAccessKeyId=ABCD1234&Expires=1289261668&Signature=3mMBeKISewgEUDT%2FL5mRz4EYS4M%3D"
> By default the URL will reference the most recent backup. To access
> another backup pass the backup ID to the pgbackups:url command.此外,他们在github https://github.com/heroku/heroku.rb上的文档中也有一些帮助,但该站点上的示例还不足以让我了解如何实际使用这个附加组件。
任何帮助,这将是非常感谢!谢谢!
发布于 2013-02-20 23:51:37
因为它是一个单独的插件,所以它有自己的api,而不是heroku的一部分。如果您想查看API调用什么,请签出以下文件:https://github.com/heroku/heroku/blob/master/lib/heroku/client/pgbackups.rb
但是,请注意,尽管您可以计算出api,但它是,而不是文档,并且可以而且将在不通知的情况下更改。这不是出于恶意,而是我们还没有花时间为pgbackup确定一个可靠的api,我们会为站在后面而感到自豪。
在此期间,继续使用它,不过,只要关注它。
https://stackoverflow.com/questions/14991872
复制相似问题