Sto creando un'app che consente agli utenti di utilizzare il proprio dominio. Quale metodo uso nella mia app Rails per registrare automaticamente il dominio scelto con Heroku? Avrò anche bisogno di cancellarlo se lo cambieranno.Come posso aggiungere domini all'app Heroku usando il codice Ruby?
risposta
Il modo in cui di solito add domains in Heroku utilizza l'API Heroku tramite Heroku gem. C'è un comando chiamato heroku domains:add
è possibile richiamare
$ heroku domains:add example.com
Come ho detto prima, il cliente chiama l'API Heroku. È possibile estrarre le informazioni dell'API del dominio Heroku dalla libreria e creare uno script personalizzato che chiami l'API Heroku per aggiungere e rimuovere un dominio dall'app.
Ecco lo client source code.
Nota. Poiché tu sei "reverse engineering" e API che sembra non essere documentata, dovresti chiedere a Heroku il permesso di farlo, solo per essere sicuro che non stai creando qualcosa contro il loro TOS.
La gemma è di heroku ed è l'approccio consigliato. Ho appena contattato Heroku con la stessa domanda e questa è stata la risposta:
Hai bisogno di dire a Heroku del dominio e di dove dirigerlo. Il CNAME dice al DNS come ottenere la richiesta a Heroku. Ora devi dire a Heroku quale app per inviarla. Puoi farlo aggiungendo il dominio alla tua app. Nel tuo caso dovresti eseguire "domini heroku: aggiungi my.domain.com" alla tua app. Puoi anche farlo a livello di codice dall'interno dell'applicazione sulla nostra API. Guarda la gemma Heroku (http://github.com/heroku/heroku) per un esempio di come connettersi e utilizzare l'API.
Ho contattato Heroku per la stessa cosa, e mi hanno appena indicato a their api e ho detto che va bene usarlo in questo modo.
Ho paura che non ci sia. Our API è "documentato" solo dal codice del client.
Si possono trovare il nostro gruppo google utile per ottenere consulenza da membri della comunità così: http://groups.google.com/group/heroku/
Oren
Ecco il semplice how-to:
require 'heroku'
heroku = Heroku::Client.new('heroku_username', 'heroku_password')
heroku.add_domain('heroku_app_name', 'example.com')
heroku.remove_domain('heroku_app_name','example.com')
Vedi the api per più .
Ovviamente ti consiglio di non inserire una password in chiaro nel tuo codice. Una cosa carina che puoi fare è usare le variabili d'ambiente heroku per far uscire le tue password dal codice.
heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASSWORD'])
e quindi è possibile impostare le variabili di ambiente sul vostro app con
$> heroku config:add HEROKU_USER='heroku_username'
$> heroku config:add HEROKU_PASSWORD='heroku_password'
dalla riga di comando.
La gemma di heroku è stata ritirata. Dovresti invece usare la gemma heroku.rb. I comandi sono leggermente cambiati, ma è essenzialmente lo stesso.
require 'heroku-api'
heroku = Heroku::API.new(:api_key => API_KEY) # use API Key
heroku = Heroku::API.new(:username => USERNAME, :password => PASSWORD) # use username and password
heroku = Heroku::API.new(:headers => {'User-Agent' => 'custom'}) # use custom header
heroku.delete_domain('app', 'example.com') # remove the 'example.com' domain from the 'app' app
heroku.get_domains('app') # list configured domains for the 'app' app
heroku.post_domain('app', 'example.com') # add 'example.com' domain to the 'app' app
- 1. Come documentare il codice Ruby usando Doxygen?
- 2. Come posso invocare il codice Python da Ruby?
- 3. Come cercare in più domini usando System.DirectoryServices.AccountManagement?
- 4. Come posso scaricare un'immagine usando Ruby?
- 5. Come posso rilevare i volti usando Ruby?
- 6. Ruby on rails: Devise, vuoi aggiungere il codice di invito?
- 7. Come documentare il codice Ruby?
- 8. Come posso aggiungere timeout a questo codice
- 9. Come posso svuotare il buildpack Heroku CACHE_DIR?
- 10. Come posso testare il codice AngularJS usando Mocha?
- 11. Come posso utilizzare rdiscount su Heroku?
- 12. come semplificare il mio codice usando jquery?
- 13. Come caricare immagini sul server heroku usando il plugin attachment_fu
- 14. Come aggiungere timePicker usando il frammento?
- 15. Come posso eseguire postMessage su più domini?
- 16. Come eseguire il debug del codice ruby?
- 17. Come eseguire il codice Ruby dal terminale?
- 18. Traccia il codice in Ruby?
- 19. Come offrire domini personalizzati per la mia app Saas in heroku?
- 20. Come posso unire e ordinare più elenchi usando Ruby?
- 21. Come posso impostare il percorso per l'app heroku postgresql?
- 22. Come posso aggiungere un nodo sotto un nodo usando ObjectContentManager?
- 23. Come posso passare a Ruby 1.9.3 installato usando Homebrew?
- 24. Come posso scaricare un file su HTTP usando Ruby?
- 25. Modifica codice applicazione Heroku online
- 26. Come distribuire su Heroku usando Mercurial?
- 27. Come posso aggiungere un blocco cdata usando GDataXMLNode?
- 28. Come posso aggiungere una casella combinata usando l'helper RoR?
- 29. Come posso aggiungere una griglia di sfondo usando ggplot2?
- 30. Come posso impostare il database MongoDB su Heroku con MongoLab?
Grazie Simone. Quindi non esiste un modo documentato per farlo in modo legittimo allora? –
Onestamente, non credo che questo modo sia "illegale" perché non stai decompilando nulla. A proposito, dovresti contattare Heroku per assicurarti che possa essere fatto. –
Non c'è bisogno di preoccuparsi, Heroku supporta l'utilizzo dell'API, ad esempio, menzionano l'utilizzo per [modificare il numero di dynos nei propri documenti] (http://docs.heroku.com/faq-product-features#how-does -dyno-amp-lavoratore-scaling-lavoro). Tuttavia, l'API potrebbe essere soggetta a modifiche in futuro. – wuputah